力扣|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.mzph.cn/news/617566.shtml

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

相关文章

关于Python里xlwings库对Excel表格的操作(三十二)

这篇小笔记主要记录如何【如何使用“Chart类”、“Api类"和“Axes函数”设置坐标轴标题文本内容】。 前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 &#xff08;1&#xff09;如何安装导入xlwings库…

《安富莱嵌入式周报》第330期:开源ECU模组,开源USB PD供电SMD回流焊,嵌入式系统开发C代码参考指南,旨在提升C语言编写的源码质量

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程 BSP视频教程第29期&#xff1a;J1939协议栈CAN总线专题&#xff0c;源码框架&#xff0c;执行流程和…

使用Sqoop将数据从Hadoop导出到关系型数据库

当将数据从Hadoop导出到关系型数据库时&#xff0c;Apache Sqoop是一个非常有用的工具。Sqoop可以轻松地将大数据存储中的数据导出到常见的关系型数据库&#xff0c;如MySQL、Oracle、SQL Server等。本文将深入介绍如何使用Sqoop进行数据导出&#xff0c;并提供详细的示例代码&…

Python web自动化测试框架搭建(功能接口)——通用模块

1、通用模块&#xff1a; config.conf: 公共配置文件&#xff0c;配置报告、日志、截图路径&#xff0c;以及邮件相关配置 [report] reportpath E:\workspace\WebAutomation\src\functiontest\Report\2017-07-18 screen_path E:\workspace\WebAutomation\src\functiontest\R…

电脑/设备网络共享给其他设备上网

文章目录 一、概述二、设置网络共享2.1 电脑可以上网&#xff0c;通过网络共享让其他设备也可以上网2.2 手机如何使用USB数据线共享网络给电脑 一、概述 现在有如下几种情况&#xff1a; 设备本身不能上网&#xff0c;需要通过电脑上网 笔记本WIFI连热点上网&#xff0c;然后…

C#,卡特兰数(Catalan number,明安图数)的算法源代码

一、概要 卡特兰数&#xff08;英语&#xff1a;Catalan number&#xff09;&#xff0c;又称卡塔兰数、明安图数&#xff0c;是组合数学中一种常出现于各种计数问题中的数列。以比利时的数学家欧仁查理卡特兰的名字来命名。1730年左右被蒙古族数学家明安图使用于对三角函数幂…

运动模型非线性扩展卡尔曼跟踪融合滤波算法(Matlab仿真)

卡尔曼滤波的原理和理论在CSDN已有很多文章&#xff0c;这里不再赘述&#xff0c;仅分享个人的理解和Matlab仿真代码。 1 单目标跟踪 匀速转弯&#xff08;CTRV&#xff09;运动模型下&#xff0c;摄像头输出目标状态camera_state [x, y, theta, v]&#xff0c;雷达输出目标状…

js逆向第19例:猿人学第17题天杀的Http2.0

文章目录 一、前言二、定位关键参数三、代码实现四、参考文献一、前言 任务十七:抓取这5页的数字,计算加和并提交结果 题目已经给出来标准答案,而且此题设置为“非常简单”其关键就是HTTP/2.0请求,打开控制台查看请求接口数据如下: 二、定位关键参数 可以看到控制台显示…

Linux系统——DNS解析详解

目录 一、DNS域名解析 1.DNS的作用 2.域名的组成 2.1域名层级结构关系特点 2.2域名空间构成 2.3域名的四种不同类型 2.3.1延伸 2.3.2总结 3.DNS域名解析过程 3.1递归查询 3.2迭代查询 3.3一次DNS解析的过程 4.DNS系统类型 4.1缓存域名服务器 4.2主域名服务器 4…

MES系统如何进行产品的质量管理

质量管理重点是对产品的检验&#xff0c;这里面包括&#xff1a;采购来料检验、工序检验、入库前检验等几个检验环节&#xff0c;并根据系统设定的检验标准进行检验&#xff0c;检验不通过的不能留到下个环节。质量管理也是万界星空科技云MES中的一个重要组成部分&#xff0c;旨…

Java接入Apache Spark(入门环境搭建、常见问题)

Java接入Apache Spark&#xff08;环境搭建、常见问题&#xff09; 背景介绍 Apache Spark 是一个快速的&#xff0c;通用的集群计算系统。它对 Java&#xff0c;Scala&#xff0c;Python 和 R 提供了的高层 API&#xff0c;并有一个经优化的支持通用执行图计算的引擎。它还支…

Unity 工具 之 Azure 微软连续语音识别ASR的简单整理

Unity 工具 之 Azure 微软连续语音识别ASR的简单整理 目录 Unity 工具 之 Azure 微软连续语音识别ASR的简单整理 一、简单介绍 二、实现原理 三、注意实现 四、实现步骤 五、关键脚本 一、简单介绍 Unity 工具类&#xff0c;自己整理的一些游戏开发可能用到的模块&#x…

Vue:将以往的JQ页面,重构成Vue组件页面的大致思路梳理(组件化编码大致流程)

一、实现静态组件 组件要按照功能点拆分&#xff0c;命名不要与HTML元素冲突。 1、根据UI提供的原型图&#xff0c;进行结构拆分&#xff0c;拆分的粒度以是否方便给组件起名字为依据。并梳理好对应组件的层级依赖关系。 2、拆分好结构后&#xff0c;开始对应的写组件&#x…

vue3-响应式基础之reactive

reactive() 还有另一种声明响应式状态的方式&#xff0c;即使用 reactive() API。与将内部值包装在特殊对象中的 ref 不同&#xff0c;reactive() 将使对象本身具有响应性&#xff1a; 「点击按钮1」 <script lang"ts" setup> import { reactive } from vuec…

ATECLOUD-POWER测试系统如何检测电源稳定性?

电源模块做为一种电源供应器为电子设备提供供电&#xff0c;广泛应用于汽车电子、航空航天、医疗、通信等各个领域&#xff0c;因此检测电源模块的稳定性是非常重要的&#xff0c;确保其为电子设备提供稳定的电压和电流&#xff0c;保证电子设备可以正常稳定工作。 电源模块的稳…

四川古力未来科技有限公司:抖音小店的崛起之路

随着互联网的飞速发展&#xff0c;电子商务已经成为人们日常生活中不可或缺的一部分。作为一家以科技为核心的公司&#xff0c;四川古力未来科技有限公司在电子商务领域中崭露头角&#xff0c;特别是其抖音小店的发展引人注目。 四川古力未来科技有限公司的抖音小店自开业以来&…

RT-Thread:STM32 PHY 调试,使用软件包 WIZNET 驱动 W5500

说明&#xff1a; 1. 本文记录使用 RT-Thread 软件包 WIZNET驱动 W5500 的调试笔记。 2. 采用 RT-Thread Studio 工程 STM32F407VET6 芯片&#xff0c;W5500 PHY芯片&#xff0c;两者之间使用SPI接口链接 。 注意&#xff1a; 1.在按流程建立工程&#xff0c;和移植完 wizn…

LeetCode---121双周赛---数位dp

题目列表 2996. 大于等于顺序前缀和的最小缺失整数 2997. 使数组异或和等于 K 的最少操作次数 2998. 使 X 和 Y 相等的最少操作次数 2999. 统计强大整数的数目 一、大于等于顺序前缀和的最小缺失整数 简单的模拟题&#xff0c;只要按照题目的要求去写代码即可&#xff0c;…

2-Linux-应用-部署icwp-Linux虚拟机【Django+Vue+Nginx+uwsgi+Linux】

本文概述 本文章讲述基于Linux CentOS 7系统&#xff08;虚拟机&#xff09;&#xff0c;部署DjangoVue开发的前后端分离项目。 项目源码不开放&#xff0c;但是操作步骤可以借鉴。 该文章将项目部署在Linux虚拟机上&#xff0c;暂不使用Docker 相关指令尽量展示执行路径&am…

通义灵码 - 免费的阿里云 VS code Jetbrains AI 编码辅助工具

系列文章目录 前言 通义灵码&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff0c;提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力&#xff0c;并针对阿里云 SDK/OpenAPI 的使用…