自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天行健,君子以自强不息

守住心灵的宁静

  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 【LeetCode】100. Same Tree

题解:二叉树的遍历,dfs bool isSameTree(TreeNode* p, TreeNode* q) { if(p==NULL||q==NULL)return p==q; return p->val==q->val&&isSameTree(p->left,q->left)&&isSameTree(p->right,q->right); }

2017-08-24 15:28:22 259

原创 【LeetCode】27. Remove Element

题解:利用两指针,一个用来更新数组一个用来遍历数组 int removeElement(vector& nums, int val) { int i=0; for(int j=0;j<nums.size();j++) { if(nums[j]!=val){ nums[i]=nums[j]; i++;

2017-08-14 15:38:45 264

原创 【LeetCode】442. Find All Duplicates in an Array

题解:先定位好每个元素找出不同元素即可 vector findDuplicates(vector& nums) { int i=0; vector res; while(i<nums.size()) { if(nums[i]!=nums[nums[i]-1])swap(nums[i],nums[nums[i]-1]); else i

2017-08-14 13:46:48 316

原创 【LeetCode】448. Find All Numbers Disappeared in an Array

题解:利用数组元素在1到n之间的性质把他们跟位置一一对应通过找出位置跟元素不一样的数来找到缺少的数 vector findDisappearedNumbers(vector& nums) { int i=0; vector res; while(i<nums.size()) { if(nums[i]!=nums[nums[i]-1])swap(nu

2017-08-14 13:34:04 261

原创 【LeetCode】167. Two Sum II - Input array is sorted

题解:两指针 vector twoSum(vector& numbers, int target) { int i=0,j=numbers.size()-1; vector ans(2); while(i<j) { int sum=numbers[i]+numbers[j]; if(sum<target)i++;

2017-08-14 11:09:01 183

原创 【LeetCode】189. Rotate Array

题解:题意是将数组向右旋转k个数注意k可能大于n必须取余,直接用reverse方法三次即可 void rotate(vector& nums, int k) { int n=nums.size(); k=k%n; reverse(nums.begin(),nums.end()); reverse(nums.begin(),nums.begin()+k);

2017-08-05 19:00:33 280

原创 【LeetCode】125. Valid Palindrome

题解:用两指针即可 bool isPalindrome(string s) { int len=s.size(); int lt=0,rt=len-1; while(lt<rt) { while(isalnum(s[lt])==false&<<rt)lt++; while(isalnum(s[rt])==false&<<rt)rt--;

2017-08-05 18:22:17 267

原创 【LeetCode】238. Product of Array Except Self

题解:主要用两指针的思想,左指针用来记录左边数的乘积右指针用来记录右边数的乘积并且同时计算左右两边的乘积 vector productExceptSelf(vector& nums) { int n=nums.size(); int l=1,r=1; vector res(n,1); for(int i=0;i<n;i++) { res[i

2017-08-03 22:15:22 220

原创 【LeetCode】26. Remove Duplicates from Sorted Array

题解:本题除了用hash还可以用两指针可以节省空间复杂度。用一个指针i遍历set型数组,另一个j遍历整个数组,每次不同时i++,并让j所在数放到i下一个数上,这样可以更新i指针所指的数。 int removeDuplicates(vector& nums) { int i=0; if(nums.size()==0) return 0; for(int j=1;j<num

2017-08-02 23:57:28 231

原创 【LeetCode】11. Container With Most Water

题解:注意理解题意是求最大水容器,所以两条边只能选小的那条作为深度,本题算法是用两指针,要求最大面积只须两指针同时遍历即可完成O(n)复杂度 int maxArea(vector& height) { int n=height.size(); int ans=0; int l=0,r=n-1; while(l<r) { ans=max(an

2017-08-02 23:12:36 204

网易新闻客户端

新闻阅读客户端,界面优美,可离线阅读,代码量大,对于android开发者和android学习人员都有很大的帮助

2015-04-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除