leetcode hot100_part25

2024/4/23

56.合并区间

189.轮转数组

使用额外数组

遍历老数组,每个位置的元素放到新数组的位置(取余)。

环状替换

这个思路也想到了但是没想出来。

也就是连续跳,从i位置跳到它应该在(取余后)的位置x,再从x位置开始跳,这么一直进行下去直到再次跳回 i 位置。但是只是这一次并不能覆盖所有的元素。

继续从i+1位置重复上述步骤,直到跳回i+1位置。

如果要得到这个过程重复的次数,就要知道每一趟遍历多少个元素,设为x。暂时不知道咋算可以先设置变量count,每遍历一个+1,直到count == length。x一定是小于k的。

一趟走过的路长s,一定是数组长度和k的整数倍,由于是第一次回到i位置,所以s为nums.length和k的最小公倍数,那么 x = s/k。最后算出来重复次数为n 和 k的最大公约数即gcd(n,k)。gcd怎么求?

翻转

先整体,再前k个,再剩下length - k 个。翻转三次。

翻转的思路就是交换首尾直至中间位置。

238.除自身以外数组的乘积

空间复杂度O(n)

和第一印象一样,既然不让用除法,那么就找 i 位置前面的数和后面的数的乘积,设置两个等长数组,前缀和后缀数组,长度为nums.length,前缀数组表示从0到位置i所有元素的乘积(包含位置i),后缀数组表示从最后一个数到位置i的乘积。计算位置i的结果用相邻位置的前后缀相乘。

官方解法里前后缀数组表示的是 i 位置之前元素累乘(0~ i-1 )和最后一个元素到i+1位置的累乘,不包括 i 位置。

空间复杂度O(1)

总体的思路还是一样的,就是先让前缀乘积数组充当结果数组,然后再从数组尾部遍历,乘上该位置的后缀积,只是后缀积是用一个变量迭代的。

相关推荐
wfeqhfxz25887824 小时前
YOLO13-C3k2-GhostDynamicConv烟雾检测算法实现与优化
人工智能·算法·计算机视觉
芝士爱知识a4 小时前
2026年AI面试软件推荐
人工智能·面试·职场和发展·大模型·ai教育·考公·智蛙面试
Aaron15884 小时前
基于RFSOC的数字射频存储技术应用分析
c语言·人工智能·驱动开发·算法·fpga开发·硬件工程·信号处理
石去皿5 小时前
大模型面试通关指南:28道高频考题深度解析与实战要点
人工智能·python·面试·职场和发展
程序员辣条6 小时前
AI产品经理:2024年职场发展的新机遇
人工智能·学习·职场和发展·产品经理·大模型学习·大模型入门·大模型教程
AI大模型测试6 小时前
大龄程序员想转行到AI大模型,好转吗?
人工智能·深度学习·机器学习·ai·语言模型·职场和发展·大模型
美团程序员6 小时前
80道经典常见测试面试题
软件测试·面试·职场和发展·软件测试面试
sunguang20186 小时前
“懂不懂管理,一看便知”:做管理就是3件事,抓大、放小、管细做管理,其实就是要做好三件事:抓大、放小、管细。
经验分享·职场和发展
ProcessOn官方账号6 小时前
程序员如何与同龄人拉开差距?这5张让你快速提升认知,打开格局!
深度学习·职场和发展·学习方法
阿福赚美刀6 小时前
跨境电商公司如何高效培养新人:实战经验分享
职场和发展·电脑