
LeetCode
文章平均质量分 56
HesseSummer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
27.移除元素【数组】
一、题目描述: 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并...原创 2018-07-25 01:20:51 · 299 阅读 · 0 评论 -
35.搜索插入位置
一、问题描述 略。注意只是返回下标,不改变其他任何。 二、思路 找到返回位置的特征:target<=该位置的元素。 而且,如果没找到,就是n。 三、代码呈现 class Solution { public: int searchInsert(vector<int>& nums, int target) { int n = nums.s...原创 2018-08-02 23:24:21 · 295 阅读 · 0 评论 -
9.回文数
一、题目描述 略。注意处理的是一个数字,而不含有其他字符。 二、思路 当然可以以字符数组的方式存储该整数,然后对比首尾字符判断是否为回文。但是我看到网上有另外的解答方式。将O(n)时间复杂度+O(n)空间复杂度降低到了O(logn)时间复杂度和O(1)空间复杂度。所以我打算使用那个方法。 方法就是 首次负数不是回文数; 非负数可以通过数学方式搞出后面一半,然后和前面一半比较即可。 尤...原创 2018-08-02 23:07:56 · 342 阅读 · 0 评论 -
88.合并两个有序数组
一、问题描述 略。知道是在nums1上变动。 二、思路 如果从nums1的头部开始放,就会出现nums1紧接着的第一个元素还没有nums2从头数第二个元素小的情形,这样就没有办法比较了。而从nums1的最后一个元素开始放,能够保证nums1和nums2的最后一个元素一定比彼此的倒数第二个元素大。 所以选择从nums1的最后一个位置开始放数。且该数一定是从nums1或nums2的没有用到的最...原创 2018-08-02 22:01:25 · 245 阅读 · 0 评论 -
119. 杨辉三角 II
一、问题描述 略。 注意是用o(k)的空间完成,而不要求时间复杂度(时间复杂度没法再小了应该只能是O(n^2))。 二、思路 1 1 1 1 2 1 1 3 3 1 这个二维表格,从左往右表示实际题需的Row数组;从上往下表示依据时间进展,不同时刻Row数组的样子。 每次形成R...原创 2018-08-02 21:10:03 · 301 阅读 · 0 评论 -
118、杨辉三角
一、题目描述 略 二、思路分析 题目让返回一个二维vector数组,数组存储着杨辉三角。 只要根据杨辉三角形的特征生成即可。 也就是: 行数:numRows;列数:对应行数+1; 每行第一个最后一个是1,其他的由上一行的某两个数生成。 三、代码呈现 class Solution { public: vector<vector<int>> gene...原创 2018-08-02 19:44:54 · 509 阅读 · 0 评论 -
66.加一
一、问题描述 略。 注意是生成、返回新数组,而不是修改原来的digits。 二、思路 当然可以先生成一个和digits一样的vector,叫New,然后在New上操作。 但是也可以先生成一个全为0的New数组,然后每个元素修改为合理的数值。 试一试第二个思路吧。 三、代码呈现 class Solution { public: vector<int> plusO...原创 2018-08-02 19:06:32 · 177 阅读 · 0 评论 -
80. 删除排序数组中的重复项 II
一、题目描述 略 二、思路 两个游标i、j,一个辅助变量id。 j用来记录元素要复制到的位置:也就是0、1、2、3…… i用来记录哪个元素要进行复制操作,id辅助这一过程。 j很好说,步长为1,直接for循环j++就可以了。 关键是i,关键是哪个元素将要被复制: 以nums = [1,1,1,2,2,3]为例,被复制的元素是第一个1,第二个1,第一个2,第二个2,第一个3。也就是重复...原创 2018-08-02 18:07:55 · 438 阅读 · 0 评论 -
26. 删除排序数组中的重复项【数组】
一、题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。...原创 2018-07-25 19:43:44 · 259 阅读 · 0 评论 -
53.最大子序和
一、问题描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 二、思路 两个变量,一个是ans,用来存储、更新子序列;一个maxn,始终保存着当前最大的子序列。 子序列更新的方式:当一个...原创 2018-08-03 00:19:08 · 237 阅读 · 0 评论