leedcode
wjh8925750
这个作者很懒,什么都没留下…
展开
-
09 - leedcode第26题删除排序数组中的重复项——基于c++
RemoveDuplicates::clearDuplicates(vector<int>& nums){ /**方法一:暴力法 * 从前往后遍历行不通,考虑从后往前遍历,遇到重复项可以直接length - 1并舍弃。 * 0 0 1 1 1 2 2 2 length = 8 * 0 0 1 1 1 2 2 length - 1 =...原创 2018-09-27 10:34:03 · 148 阅读 · 0 评论 -
07 - leedcode第15题三数之和详解——基于c++
vector<vector<int>> leedcode15::easy_threeSum(vector<int>& nums){ /** * 巧妙解法:其中有一些剪枝优化的思想 * 1、先对给定的数组进行从小到大排序 * 如: 1, 2, -1, -3, 0, 3 * 排序:-3, -1, ...原创 2018-09-22 11:22:14 · 380 阅读 · 1 评论 -
011 - leedcode第217题存在重复元素 ———基于c++
bool Solution::containsDuplicate(vector<int>& nums){ /** *解法:先对数组进行排序,然后再一一遍历 */ if(nums.size() == 0) return false; sort(nums.begin(), nums.end()); for(int ...原创 2018-10-08 21:25:22 · 160 阅读 · 0 评论 -
012 - leedcode第136题只出现一次的数字——基于c++
int Solution::singleNumber(vector<int>& nums){ /** *这个题很特殊:它要求最好有线性复杂度,并且不使用额外的空间。 * *利用数字之间的 异或 运算,异或 运算的性质有 a^b^c = a^c^b *如 1^2^1 = 1^1^2 = 0^2 = 2 * ...转载 2018-10-08 21:42:00 · 213 阅读 · 0 评论 -
013 - leedcode第66题plusone(加一)——基于c++
vector<int> Solution::easy_plusOne(vector<int>& digits){ /**就是一种很一般的思路, *首先:判断个位是否为9,若不是9便直接个位加1,返回。 *若个位是9,则将个位变为0,并观察前一位的数值,若前一位是9则变为0 *若不是9就加一, *全部遍历。 ...原创 2018-10-09 21:42:09 · 177 阅读 · 0 评论 -
014 - leedcode第283题移动0——基于c++
void Solution::moveZero(vector<int>& nums){ /** *超级愚蠢的代码,运行了700ms,击败了0.9%的对手 */ int num = 0; int i = 0; int length = nums.size(); for(int i = 0; i < lengt...原创 2018-10-09 23:20:40 · 126 阅读 · 0 评论 -
015 - leedcode11 盛最大水量的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(...原创 2018-11-05 21:00:11 · 128 阅读 · 0 评论