我工资10000,面试下家说能涨到15000,我去跟领导说,他给我涨到16000。结果几天后,下家HR找我说20000立刻就签
说实话,大家都知道,工资这东西,它是个永远值得谈的事儿。
就像那位网友的经历一样:10000的时候还想着升个职啥的,结果面试时一提,下一家直接给开出了15000的薪水。这个时候很多人可能就会想:“哎呀,要不要走呢?不过我得跟老板先谈谈。”然后,老板听说了,给涨了16000,这不,自己也算是赢了点。
但是,几天后,下一家HR再来一波高招,直接20K的offer让你无法拒绝!
这才是真正的程序员“日常”啊。
虽然有点尴尬,但也不能怪别人。我们这一行就是这么残酷——涨薪的门槛总是在不断提升。如果能找到下家比现有公司更有吸引力的条件,那换工作就是必须的选择。
我觉得,大家在面对这样的情况时,不要太慌张。工资涨幅本来就有差异,关键是我们得拿捏好自己的价值和底线,找到最适合自己的发展机会。 【备注:文末可领最新资料】 。
算法题:最多的不重叠子字符串
最近看了个算法题:“最多的不重叠子字符串”。说实话,一开始我看到这个题目时,心里就有点想,“这不就是那个滑动窗口问题吗?”对的,没错,滑动窗口是很多类似题目的解决方法,而这道题也是利用滑动窗口来解的。
那么问题是什么呢?给定一个字符串,要求找出其中最多的不重叠的子字符串长度,也就是要找出最长的不重复的字符子串的长度。这种问题一般有两个常见的考点,一是窗口的扩展,二是窗口的收缩。而滑动窗口正是一个能够灵活扩展和收缩的操作,简直是解这种题的“神器”。
比如说,你给我一个字符串
"abcabcbb"
,你的目标就是找到这个字符串中最长的没有重复字符的子字符串。在这个例子里,最长的不重复子字符串是
"abc"
,长度是3。
首先,我们来想一想,滑动窗口到底是怎么工作的。假设我们有两个指针,一个指向窗口的起始位置,一个指向窗口的结束位置。然后,我们会不断移动这个“结束”指针,扩展窗口的大小,直到遇到重复字符。这时候,我们就需要调整“开始”指针,收缩窗口,直到没有重复字符为止。通过这种方式,我们可以不断更新当前的子串长度,最终找到最长的不重复子串。
再来说一说代码实现。我们可以使用一个字典(或哈希表)来记录每个字符出现的位置,然后利用这个字典来快速定位到重复字符的位置。这是为了在遇到重复字符时,能够快速更新窗口的起始位置。
来看看代码:
def lengthOfLongestSubstring(s: str) -> int:
# 字典用来存储字符的最新位置
char_index_map = {}
# 初始的滑动窗口的起始位置
start = 0
max_length = 0
# 遍历字符串
for end in range(len(s)):
# 如果当前字符已经在窗口内出现,移动起始位置
if s[end] in char_index_map and char_index_map[s[end]] >= start:
start = char_index_map[s[end]] + 1
# 更新字符的最新位置
char_index_map[s[end]] = end
# 更新最大子串的长度
max_length = max(max_length, end - start + 1)
return max_length
这个代码的关键就在于
char_index_map
字典,它存储了每个字符最后一次出现的位置。我们通过“结束”指针遍历字符串,遇到重复字符时,调整“开始”指针的位置。通过这种方式,我们每次都能保证窗口内的字符是唯一的。
说到这里,可能有些人会觉得这个题目好像没什么难度,毕竟我们也没用什么特别复杂的算法。但是其实,滑动窗口本身就是一个需要理解和掌握的技巧。它的最大优势是能够在O(n)的时间复杂度内解决问题,而不是用O(n²)去做暴力枚举。
也有些同学可能会想:“这个滑动窗口,不就是比‘暴力破解’要快吗?”其实,暴力破解就是把每一个子串都列出来,然后检查是不是重复的,这个方法的时间复杂度是O(n²)。滑动窗口的好处就在于它避免了这种暴力的查找,能够高效地解决问题。
话说回来,滑动窗口是很常见的一个技巧,不仅在这种“最长不重复子串”问题上有用,类似的有很多问题都可以用滑动窗口来优化。例如,在处理“最小覆盖子串”的问题时,也是滑动窗口的经典应用。
最后,给大家一个小提示,虽然这个算法的时间复杂度是O(n),但还是有一些细节需要注意。比如说,处理空字符串的情况,或者对某些特殊字符的判断等等。这些细节都可以通过在代码中加入一些简单的判断来优化,避免程序出错。
总之,这个题目通过滑动窗口的技术,不仅帮我们节省了很多时间,而且提升了代码的可读性和简洁性。希望大家能把这种技巧掌握好,以后遇到类似的题目就能得心应手了。
最后,我为大家打造了一份deepseek的入门到精通教程,完全免费: https://www.songshuhezi.com/deepseek也可以看我写的这篇文章《 DeepSeek满血复活,直接起飞! 》来进行本地搭建。
对编程、职场感兴趣的同学,大家可以联系我微信: golang404 ,拉你进入“程序员交流群”。🔥 虎哥私藏精品 热门推荐 🔥 虎哥作为一名老码农,整理了全网最全 《python高级架构师资料合集》 。 资料包含了 《IDEA视频教程》 、 《最全python面试题库》 、 《最全项目实战源码及视频》 及 《毕业设计系统源码》 ,总量高达 650GB , 全部 免费领取