LeetCode #912:Sort an Array(排序数组)

题目描述

题意基本上就是把 “默写快排” 四个大字给拍脸上了,调用标准库的 sort 在面试中肯定是没分的【手动狗头
需要注意的是测试用例中存在有序的长数组,如果直接取第一个元素作为快排的枢轴会超时,这里我在每次划分的时候取区间中间的元素作为枢轴来避免超时。

阅读全文

LeetCode #61:Rotate List(旋转链表)

题目描述

思路不难,就是将链尾拆下来插到链首 k 次,类似于 “循环右移”。需要注意的是如果直接写循环 k 次会超时(题目中 k 的范围是 0 <= k <= 2 * 109),这个时候的优化思路是统计一下链表的元素总数 count,再把循环次数设为 k 模 count,就能应对 k 很大但 count 很小的情况了(避免了大量重复的右移)。

阅读全文

LeetCode #53:Maximum Subarray(最大子数组和)

题目描述

本题是一个经典的动态规划问题。需要注意的是解题时将 dp[i] 定义为数组 nums 中以 num[i] 结尾的最大连续子串和,最终不能直接返回 dp[n-1],因为给定数组的最大连续子数组不一定以该数组的最后一个数结尾。这里采用一个额外的 res 变量来记录最大值。

阅读全文