随笔分类 - leetcode-数组
摘要:题目: 解答: 杨辉三角即该位置的值为左上角与右上角的和,注释很清楚了(note for self数组初始化方法)。 1 class Solution { 2 public: 3 vector<vector<int>> generate(int numRows) 4 { 5 vector<vecto
阅读全文
摘要:题目: 解答: 从后向前进行数据遍历。 (1)因为nums1的空间都集中在后面,所以从后向前处理排序的数据会更好,节省空间,一边遍历一边将值填充进去; (2)设置指针len1和len2,分别指向nums1和nums2的有数字尾部,从尾部值开始比较遍历,同时设置指针len指向nums1的最末尾,每次遍
阅读全文
摘要:题目: 解答: 思路:从末位向前逐位模拟十进制加法器,首位进行单独判断。 1 class Solution { 2 public: 3 vector<int> plusOne(vector<int>& digits) 4 { 5 int size = digits.size(); 6 for(int
阅读全文
摘要:题目: 解答: 当我们加上一个正数的时候,和会增加;当我们加上一个负数的时候,和会减少。如果当前得到的和是个负数,那么这个和接下来的累加中应该抛弃并重新清零,不然的话,这个负数将会减少接下来的和。 1 class Solution { 2 public: 3 int maxSubArray(vect
阅读全文
摘要:题目: 解答: 思路:双指针法。 既然问题要求我们就地删除给定值的所有元素,我们就必须用O(1)的额外空间来处理它。如何解决?可以保留两个指针i和j,其中i是慢指针,j是快指针。 算法: 当nums[j]与给定的值相等时,递增j以跳过该元素。只要nums[j] != val, 我们就复制nums[j
阅读全文
摘要:题目: 解答: 思路:双指针法。 数组完成排序后,可以放置两个指针i和j,其中i是慢指针,而j是快指针。只要nums[i] = nums[j],就增加j以跳过重复项。 当遇到nums[i] != nums[j]时,跳过重复项的运行已经结束,因此必须把它(nums[j])的值复制到nums[i+1]。
阅读全文

浙公网安备 33010602011771号