力扣|2023华为秋招冲刺

文章目录

  • 第一关:2023 年 7 月面试题挑战
  • 第二关:2023 年 6 月面试题挑战
  • 第三关:2023 年 5 月面试题挑战

第一关:2023 年 7 月面试题挑战

在这里插入图片描述

class Solution {
public:void reverseWord(vector<char>& s,int l,int r){for(int i=l,j=r;i<=j;i++,j--){char tmp = s[i];s[i] = s[j];s[j] = tmp;}}void reverseWords(vector<char>& s) {int l = 0;for(int i=0;i<s.size();i++){if(s[i]==' ')reverseWord(s,l,i-1),l=i+1;}reverseWord(s,l,s.size()-1);reverseWord(s,0,s.size()-1);}
};

在这里插入图片描述

第二关:2023 年 6 月面试题挑战

在这里插入图片描述
遇到边界或者已经走过的点,修改方向。直至修改方向后依旧存在问题,则跳出循环♻️。

class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {int dirx[] = {0,1,0,-1};int diry[] = {1,0,-1,0};int order_dir = 0;int cols = matrix[0].size();int rows = matrix.size();bool used[rows+6][cols+6];memset(used, 0, sizeof(used));int curx = 0,cury = 0;vector<int> ans;while(!used[curx][cury]){ans.push_back(matrix[curx][cury]);used[curx][cury] = 1;int nx,ny;nx = curx + dirx[order_dir];ny = cury + diry[order_dir];if(nx<0||nx>=rows||ny<0||ny>=cols||used[nx][ny]){order_dir = (order_dir+1)%4;nx = curx + dirx[order_dir];ny = cury + diry[order_dir];if(nx<0||nx>=rows||ny<0||ny>=cols||used[nx][ny]){break;}}curx = nx;cury = ny;}return ans;}
};

在这里插入图片描述

class Solution {
public:bool used[30];int anslen = 0;int getcnt(){int res = 0;for(int i=0;i<=25;i++)res += used[i];return res;}bool check(string &s){int cnt[26];memset(cnt,0,sizeof(cnt));for(int i=0;i<s.length();i++){cnt[s[i]-'a']++;if(cnt[s[i]-'a']>=2) return false;}return true;}void dfs(int pos,vector<string>& arr){if(pos>=arr.size()){anslen = max(anslen,getcnt());return ;}if(!check(arr[pos])){dfs(pos+1,arr);return ;}bool flag = 0;for(int i=0;i<arr[pos].size();i++){if(used[arr[pos][i]-'a']==1){flag = 1;break;}}if(flag){dfs(pos+1,arr);return ;}for(int i=0;i<arr[pos].size();i++)used[arr[pos][i]-'a']=1;dfs(pos+1,arr);for(int i=0;i<arr[pos].size();i++)used[arr[pos][i]-'a']=0;dfs(pos+1,arr);}int maxLength(vector<string>& arr) {dfs(0,arr);return anslen;}
};

在这里插入图片描述
dp[i][j][k]代表处理到第i个房子,当前第i的房子偷没偷的情况为j,且第一个房子偷没偷的情况为k

class Solution {
public:int rob(vector<int>& nums) {if(nums.size()==3) return max(nums[0],max(nums[1],nums[2]));if(nums.size()==1) return nums[0];int dp[105][2][2];//dp[i][j][k]代表处理到第i个房子,当前第i的房子偷没偷的情况为j,且第一个房子偷没偷的情况为kmemset(dp,0,sizeof(dp));dp[0][0][0] = 0;dp[0][1][1] = nums[0];dp[1][1][0] = nums[1];dp[1][0][1] = nums[0];for(int i=2;i<nums.size()-1;i++){dp[i][0][0] = max(dp[i-1][0][0],dp[i-1][1][0]);dp[i][0][1] = max(dp[i-1][0][1],dp[i-1][1][1]);dp[i][1][0] = dp[i-1][0][0]+nums[i];dp[i][1][1] = dp[i-1][0][1]+nums[i];}int tot = nums.size();return max(max(dp[tot-2][1][0],dp[tot-2][1][1]),max(dp[tot-2][0][1],dp[tot-2][0][0]+nums[tot-1]));}
};

在这里插入图片描述
块内排序,重新组成,再排序。

class Solution {
public:struct node{int val,label;};static bool cmp(node &a,node &b){return a.val>b.val;}int largestValsFromLabels(vector<int>& values, vector<int>& labels, int numWanted, int useLimit) {int cur_id = 0;map<int,int> id;vector<node> vec[20050],fin;for(int i=0;i<labels.size();i++){if(id[labels[i]]==0) id[labels[i]] = ++cur_id;node tmp;tmp.val = values[i];tmp.label = labels[i];vec[id[labels[i]]].push_back(tmp);}node tmp;for(int i=1;i<=cur_id;i++){sort(vec[i].begin(),vec[i].end(),cmp);for(int j=0;j<min(int(vec[i].size()),useLimit);j++){tmp.val = vec[i][j].val;tmp.label = vec[i][j].label;fin.push_back(tmp);}}sort(fin.begin(),fin.end(),cmp);int ans = 0;int limit = min(numWanted,int(fin.size()));for(int i=0;i<limit;i++)ans += fin[i].val;return ans;}
};

第三关:2023 年 5 月面试题挑战

在这里插入图片描述

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {int len1 = 0;int len2 = 0;ListNode* tmp1 = l1;ListNode* tmp2 = l2;ListNode* pre;while(tmp1) len1++,tmp1 = tmp1->next;while(tmp2) len2++,tmp2 = tmp2->next;if(len2>len1){tmp1 = l1;l1 = l2;l2 = tmp1;}tmp1 = l1;tmp2 = l2;int add = 0;while(tmp1){pre = tmp1;if(tmp2){int num = tmp1->val + tmp2->val + add;tmp1->val = num%10;add = num/10;tmp1 = tmp1->next;tmp2 = tmp2->next;}else{int num = tmp1->val + add;tmp1->val = num%10;add = num/10;tmp1 = tmp1->next;}}while(add){pre->next = new ListNode();pre->next->val = add%10;pre->next->next = nullptr;pre = pre ->next;add /=10;}return l1;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/238597.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv8目标检测中数据集各部分的作用

自学答疑使用&#xff0c;持续更新… 在目标检测任务中&#xff0c;通常将整个数据集划分为训练集&#xff08;training set&#xff09;、验证集&#xff08;validation set&#xff09;和测试集&#xff08;test set&#xff09;。这三个数据集在训练和评估过程中具有不同的…

mysql8 源码编译 客户端连接运行 报段异常解决

mysql8 源码编译 客户端连接运行 报段异常解决。解决方案&#xff1a;删除之前编译的文件。先安装libncurses-dev依赖&#xff0c;在重新编译。原因&#xff1a;第一次编译没有libncurses-dev依赖&#xff0c;编译告警&#xff0c;再次编译有缓存&#xff0c;没有引入声明头文件…

分析一个项目(微信小程序篇)三

目录 接下来分析接口方面&#xff1a; home接口&#xff1a; categories接口&#xff1a; details接口&#xff1a; login接口&#xff1a; 分析一个项目讲究的是如何进行对项目的解析分解&#xff0c;进一步了解项目的整体结构&#xff0c;熟悉项目的结构&#xff0c;能够…

Vue-10、Vue键盘事件

1、vue中常见的按键别名 回车 ---------enter <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>键盘事件</title><!--引入vue--><script type"text/javascript" src"h…

数据库——DAY4(练习-在表中查找数据-多表查询)

一、实验要求&#xff08;多表查询&#xff09; 素材&#xff1a; 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); …

怎么采集今日头条的资讯或文章-简数采集器

如何使用简数采集器快速采集今日头条新闻的资讯或优质文章&#xff1f; 很遗憾&#xff0c;简数采集器暂时不支持采集今日头条上的新闻和文章&#xff0c;不建议采集。 可以换一个采集源进行采集。 简数采集器采集网页文章非常简单&#xff0c;只需输入对应的网址&#xff0…

深入 Move 生态,探秘铭文热潮背后的思考

Move 语言是 Meta&#xff08;Facebook&#xff09;在 2018 年开发的新一代智能合约编程语言。回顾过去的一年&#xff0c;Aptos 与 Sui 主网上线&#xff0c;为整个 Web3 开启了下一个十亿用户服务的新征程。Rooch、Initia、MoveMent 等多条使用 Move 语言的区块链网络涌现&am…

【CSS】首个字符占用多行,并自定义样式

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>首字母大写</title><style&…

函数式编程 - 组合compose的使用方法

函数式编程中有一个比较重要的概念就是函数组合&#xff08;compose&#xff09;,组合多个函数&#xff0c;同时返回一个新的函数。调用时&#xff0c;组合函数按顺序从右向左执行。右边函数调用后&#xff0c;返回的结果&#xff0c;作为左边函数的参数传入&#xff0c;严格保…

开源ERP系统Odoo安装部署并结合内网穿透实现公网访问本地系统

文章目录 前言1. 下载安装Odoo&#xff1a;2. 实现公网访问Odoo本地系统&#xff1a;3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件&#xff0c;是一个一站式全功能ERP及电商平台。 开源性质&#xff1a;Odoo是一个开源的ERP软件&#xff0c;这意味着企…

SpringSecurity入门demo(一)集成与默认认证

一、集成与默认认证&#xff1a; 1、说明&#xff1a;在引入 Spring Security 项目之后&#xff0c;没有进行任何相关的配置或编码的情况下&#xff0c;Spring Security 有一个默认的运行状态&#xff0c;要求在经过 HTTP 基本认证后才能访问对应的 URL 资源&#xff0c;其默认…

案例分享:当前高端低延迟视频类产品方案分享(内窥镜、记录仪、车载记录仪、车载环拼、车载后视镜等产品)

若该文为原创文章&#xff0c;转载请注明出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/135439369 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

金融科技革命:数字化如何塑造未来经济_光点科技

当今世界&#xff0c;数字化不仅是一种趋势&#xff0c;更是深刻重塑经济和金融领域的关键力量。在这个过程中&#xff0c;金融科技&#xff08;FinTech&#xff09;崭露头角&#xff0c;成为革命性变化的代名词。以下是数字化技术在经济和金融领域的几个关键应用&#xff0c;它…

运放负反馈

学习记录所使用书籍为西安交通大学杨建国教授著《新概念模拟电路》&#xff0c;可在ADI官网下载PDF版学习。 运算放大器&#xff0c;英文为 Operational Amplifier&#xff0c;简写 OA 或 OPA&#xff0c;中文简称为运放。 理想运算放大器如图所示&#xff0c;它具有两个差分的…

mybatisPlus 将List<String>字段转成json字符串,使用JacksonTypeHandler以及自定义类型处理器实现

文章目录 场景使用JacksonTypeHandler实现类型转换自定义StringListTypeHandler处理器实现 场景 项目中经常需要将List转成json存储到数据库中, mybatisPlus默认实现了JacksonTypeHandler&#xff0c;GsonTypeHandler&#xff0c;FastjsonTypeHandler&#xff0c;也可以自定义类…

观成科技-加密C2框架EvilOSX流量分析

工具简介 EvilOSX是一款开源的&#xff0c;由python编写专门为macOS系统设计的C2工具&#xff0c;该工具可以利用自身释放的木马来实现一系列集成功能&#xff0c;如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信&#xff0c;通信内容为特…

Java 线程

1. 实现多线程的 2 种方式 Oracle 官网的文档中给出了 2 种实现多线程的方式&#xff1a; 实现 Runnable 接口&#xff1b;继承 Thread 类。 以上两种方式都会调用 Thread.run() 方法&#xff0c;区别是&#xff1a; 实现 Runnable 接口&#xff0c;只是执行 Thread.run() …

Linux--进程状态与优先级

概念 进程指的是程序在执行过程中的活动。进程是操作系统进行资源分配和调度的基本单位。 进程可以看作是程序的一次执行实体&#xff0c;它包含了程序代码、数据以及相关的执行上下文信息。操作系统通过创建、调度和管理多个进程来实现对计算机系统资源的有效利用。 每个进程…

Navicat 技术干货 | 为 MySQL 表选择合适的存储引擎

MySQL 是最受欢迎的关系型数据库管理系统之一&#xff0c;提供了不同的存储引擎&#xff0c;每种存储引擎都旨在满足特定的需求和用例。在优化数据库和确保数据完整性方面&#xff0c;选择合适的存储引擎是至关重要的。今天&#xff0c;我们将探讨为 MySQL 表选择合适的存储引擎…

0基础学java-day25(JDBC 和数据库连接池)

一、JDBC概述 1 基本介绍 2 简单模拟 package com.hspedu.jdbc.myjdbc;/*** author 林然* version 1.0* 我们规定的 jdbc 接口(方法)*/ public interface JdbcInterface {//连接public Object getConnection() ;//crudpublic void crud();//关闭连接public void close(); }pac…