秒懂 TikTok 算法面|教你轻松搞定“数组右移 k 步” – tiktok OA – 字节跳动面试 – CSoahelp

上周CSoahelp的客户参加了一场 TikTok 的VO,题目非常经典但也灵活:

“Given an integer array nums, rotate the array to the right by k steps, where k is non-negative.”

面试官还给了示例:

Input: nums = [1,2,3,4,5,6,7], k = 3  
Output: [5,6,7,1,2,3,4]

下面我就把过程简要分享一下,尽量保留干货。

最简单且最常用的思路是在原地只用 O(1) 额外空间完成:先对整个数组做一次翻转,再把前 k 个元素翻转,最后把剩下的 n−k 个元素翻转。

这样,原本最后的 k 个数会跑到最前面,顺序也会自动恢复,无需借助额外数组,只要在代码里先做 k = k % n,然后在反转函数里用双指针 swap(nums[i], nums[j]),注意 i < j 条件即可。

面试官问的还是蛮彻底的,大家要注意。

石老师今天很高兴的收到消息,面试后很快HR来问下一轮的时间

有更多真题欢迎关注石老师的小红书号 https://www.xiaohongshu.com/user/profile/62b27695000000001902bd36

也可以加石老师个人微信咨询

Leave a Reply

Your email address will not be published. Required fields are marked *