OJ-leetcode-657,2024年最新面试必问知识点-程序员宅基地

技术标签: 2024年程序员学习  面试  算法  leetcode  

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。

注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。

示例 1:

输入: “UD”
输出: true
解释:机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终回到它开始的原点。因此,我们返回 true。

示例 2:

输入: “LL”
输出: false
解释:机器人向左移动两次。它最终位于原点的左侧,距原点有两次 “移动” 的距离。我们返回 false,因为它在移动结束时没有返回原点。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/robot-return-to-origin

思路1

字符统计

代码

bool judgeCircle(string moves) {
	int u = count(moves.begin(), moves.end(), 'U');
	int d = count(moves.begin(), moves.end(), 'D');
	int l = count(moves.begin(), moves.end(), 'L');
	int r = count(moves.begin(), moves.end(), 'R');
	if (u == d&&l == r)return true;
	return false;
}

结果

效率低

思路2

简单模拟,我做过包含方向的模拟,更复杂一点,这个记录各个方向的步数即可,判断是否相等。或者减少变量,有加有减。

代码

bool judgeCircle(string moves) {
	int u,d,l,r;
	u = d = l = r = 0;
	for (char move : moves)
	{
		if (move == 'U')u += 1;
		if (move == 'D')d += 1;
		if (move == 'L')l += 1;
		if (move == 'R')r += 1;
	}
	if (u == d&&l == r)return true;
	return false;
}

结果

效率稍高

我以为这样足够击败70%以上了,没想到这么低。找了半天,找到了更优秀的题解。

我的问题是变量多,增强for循环效率低。

更优秀题解

优秀题解内容

木桶原理进行统计,利用ASCLL表。

可优化部分:moves.length()的值不变,放到for循环外面更好。

提升笔记

1.switch效率低

2.统计时记得木桶原理

优化

代码

class Solution {
public:
	bool judgeCircle(string moves) {
		int count[86] = { 0 };
		for (int i=moves.length();i>-1;--i)
		{
			++count[moves[i]];
		}
		return count['L'] == count['R'] && count['U'] == count['D'];
	}
};

结果

用时有问题

结果证明,leetcode用时有点问题呀,明显优化了,时间竟然比优秀题解翻倍了。。。

全部代码



**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)**
![img](https://img-blog.csdnimg.cn/img_convert/5ec9fc26690ba3cf281f9c94afa8df05.png)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)**
[外链图片转存中...(img-o1vnmxxJ-1713387719108)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/2401_83621784/article/details/137899275

智能推荐

笔记本电脑怎么拆开后盖_笔记本电脑拆机、清灰、散热处理流程-程序员宅基地

文章浏览阅读2.5w次,点赞2次,收藏2次。拆机不复杂,备好工具材料、对照步骤就可以上手,关键是把螺丝分类放好。01 材料工具准备电脑型号:华硕A45V笔记本电脑(操作步骤都是相似的,具体拆机方法各类电脑稍有区别)工具材料:“十字”型螺丝刀、硅脂、塑料片、P.S. 螺丝刀建议家中备一套简便的就行(下方链接),硅脂买笔记本电脑用的散热硅脂(微信上没找到链接,拼多多或京东上有,几块钱),塑料片用不用的校园卡、银行卡等等(也可以买..._笔记本后盖怎么拆

Mac系统下Sublime Text内调试JavaScript代码_mac sublime 调试typescript项目-程序员宅基地

文章浏览阅读2.7k次。问题:我想单独调试一段JavaScript代码而不是嵌入到网页端执行 工具: Sublime Text解决问题: 一、安装node.js 当然你也可以使用jsc环境来运行js,这里我们使用node.js来运行, 安装成功查询:在终端中输入 node -v会输出node版本号二、配置编译文件 SublimeText中 Tools -> Build System -> N..._mac sublime 调试typescript项目

使用Docker在windows上安装IBM MQ_win系统中,可视化工具连接其他服务上的ibmmq-程序员宅基地

文章浏览阅读859次,点赞18次,收藏8次。Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察。

软考—系统集成管理工程师备考经验_信息系统管理工程师真题百度云-程序员宅基地

文章浏览阅读362次,点赞6次,收藏8次。关于软考--系统集成管理工程师的学习总结和教训_信息系统管理工程师真题百度云

淘宝/天猫自定义API操作 API接口,custom-自定义API操作-程序员宅基地

文章浏览阅读887次,点赞24次,收藏23次。淘宝/天猫平台本身并不直接提供“自定义API操作”的官方API接口。API接口通常是由平台方定义和提供的,用于开发者与平台进行数据交互。然而,淘宝/天猫开放平台允许商家和开发者通过其提供的官方API进行一系列的操作,这些API覆盖了商品管理、订单处理、用户信息、物流查询等多个方面。您可以利用淘宝/天猫开放平台提供的官方API,通过组合多个API调用,来实现您自定义的业务逻辑。这可能需要一定的编程能力和对平台API的深入理解。

Ubuntu 16.04简易安装Nginx-rtmp-module_libnginx-mod-rtmp_1.22.0-1ubuntu3_amd64.deb-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏5次。Ubuntu 16.04简易安装Nginx-rtmp-modulelibnginx-mod-rtmp是18.04上自带的,可以通过apt-get install libnginx-mod-rtmp进行安装,在16.04上如果想要安装,直接下载libnginx-mod-rtmp_1.14.0-0+xenial1_amd64.deb安装的话会被告知nginx版本过低,依赖有问题,需要16.04自带的..._libnginx-mod-rtmp_1.22.0-1ubuntu3_amd64.deb

随便推点

js将list转化为tree格式的几种写法_js list to tree-程序员宅基地

文章浏览阅读1.8k次。最近在考虑一个树状结构存储。最终需要将list转化为tree格式源数据示例源数据共401条[{ "menuId" : "5f50c5fb8f0d74536bbfb7a4", "menuName" : "菜单管理", "parentMenuId" : null },{ "menuId" : "5f524416ff216c2cbc554907", "menuName" : "频道管理", "parentMenuId" : "5f50c5fb8f0d74536bbfb7a4" },{ "menuId"_js list to tree

《游戏开发》html5 益智小游戏-小熊吃星星-程序员宅基地

文章浏览阅读962次,点赞17次,收藏26次。你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取!!!自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

Java模拟面试总结,新网银行java面试-程序员宅基地

文章浏览阅读534次,点赞9次,收藏14次。无论是哪家公司,都很重视基础,大厂更加重视技术的深度和广度,面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。针对以上面试技术点,我在这里也做一些分享,希望能更好的帮助到大家。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)一个人可以走的很快,但一群人才能走的更远。

centos出现类似-bash: ls: command not found...和-bash: /bin/vi: input/output error的错误_-bash: /usr/libexec/pk-command-not-found: input/ou-程序员宅基地

文章浏览阅读7.5k次。centos出现类似-bash: ls: command not found...和-bash: /bin/vi: input/output error的错误_-bash: /usr/libexec/pk-command-not-found: input/output error

[Flutter翻译]GSoC ‘21:为Flutter创建一个桌面样本_flutter 桌面模板(1)-程序员宅基地

文章浏览阅读815次,点赞16次,收藏29次。两个主要的东西是能够从现有的analysis_options.yaml文件中加载配置文件,以及在规则列表中搜索特定规则的能力。经过与他和组织管理员的讨论,我找到了一个可以工作的项目。经过与Brett和团队的讨论,我们决定建立一个桌面样本,同时也是一个工具,帮助开发者管理他们项目的lint规则。今年,在Flutter Engage上,Flutter的桌面支持的测试版快照被纳入了稳定频道。你可以为不同类型的项目创建不同的规则配置文件。不幸的是,由于导师的不到位,今年的。这个博客显示了我为我的项目所做的工作。

ARC/OC对象自动管理内存_arc oc-程序员宅基地

文章浏览阅读1w次。ARC是一个编译器特征,它提供了对OC对象自动管理内存。ARC让开发者专注于感兴趣的代码和对象的关系,而不用考虑对象的retain和release。转自hherima的博客原文:Transitioning to ARC Release Notes(苹果官方文档) ARC是一个编译器特征,它提供了对OC对象自动管理内存。ARC让开发者专注于感兴趣的代码和对象的关系_arc oc

推荐文章

热门文章

相关标签