leetcode
不要做程序员的小松鼠
愉快的调bug......
展开
-
Leetcode 7 Reverse Integer
这应该算一种学习心得。 最初按照自己的思路写,代码有点长了。。。(用了string),然后就开始搜索别人的思路。分割线。。。。。。。 做算法题不要想着要写代码,那样反而想的复杂,而是想出能解决问题的思路,然后转换成代码检验。 本题纯粹的思路就是 123456 6 123456 65 123456 654原创 2015-09-28 12:22:11 · 405 阅读 · 0 评论 -
Leetcode 113. Path Sum II
思路: 1.首先遍历路径放到一个vector中,遍历过程中不断计算结点之和。 2.当num>=0时候,到达叶子结点或者和超过num停止此路径的左右孩子的遍历,判断此时和是否与num相等,若相等则放入二重容器。 3.当num 4.如果树只有根节点,则判断是否与num相等即可。 void allpath(TreeNode* root,vector &s,vector > &vec原创 2016-05-04 21:31:50 · 459 阅读 · 0 评论 -
Leetcode 257. Binary Tree Paths
Given a binary tree, return all root-to-leaf paths.For example, given the following binary tree:1 / \ 2 3 \ 5 All root-to-leaf paths are:[“1->2->5”, “1->3”]思路: 遍历二叉树的路径使用一个栈 根节点入栈,前序遍历左右原创 2016-05-03 20:06:07 · 449 阅读 · 0 评论 -
Leetcode 258. Add Digits
题目: Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. For example: Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2原创 2016-04-11 17:05:37 · 544 阅读 · 0 评论 -
283. Move Zeroes
思路: 遍历数组,找到非0的元素,依次放入另一个数组。将数组的其他位补起0。 void moveZeroes(vector& nums) { vector temp ; for (int i = 0;i<nums.size();i++) { if (nums[i]!=0) { temp.push_back(nums[i]); } } f原创 2016-03-29 11:06:42 · 330 阅读 · 0 评论 -
Leetcode 278. First Bad Version
思路: 利用二分查找的思想,如果中间的是坏的,则在前半段找(包括中间这点)。否则,从[中间加一,n]这个区间找。中间点计算为了防止相加移除,采用mid = first+(last-first)/2。 int firstBadVersion(int n) { int first = 1; int last = n; while(first<last) { if (isBad原创 2016-03-29 09:42:52 · 283 阅读 · 0 评论 -
Leetcode 263. Ugly Number
思路:既然知道丑数的定义是只有2、3、5因子的数,那么只要除去所有的2、3、5,最后结果不是1,就说明这个数丑。 bool isUgly(int num) { while(num%2==0) { num = num/2; } while(num%3==0) { num = num/3; } while(num%5==0) {原创 2016-04-06 16:27:53 · 334 阅读 · 0 评论 -
Leetcode 292. Nim Game
思路: 按照题意思考,只要我方第一次将除以4的余数拿走,那么之后每次只要保证与对方拿的数目之和为4即可。 所以只要不是4的倍数,我方就可以获得胜利。 bool canWinNim(int n) { if(n%4!=0) { return 1; } else {原创 2016-04-06 15:54:20 · 390 阅读 · 0 评论 -
Leetcode 290. Word Pattern
思路: 1.首先要分割字符串,所以我单独写了个函数 vector cut_str(string str,char c) { vector array_string; int flag = 0; for (int i = 0;i<=str.length();i++) { if (str[i]==c) { array_string.push_back(str.substr(f原创 2016-03-23 17:29:17 · 411 阅读 · 0 评论 -
Leetcode 19. Remove Nth Node From End of List
思路 遍历的方法效率较低,可利用两个指针的方法,第一个指针先跑,第二个指针等第一个指针跑了n步开始跑,当第一个指针到达终点,第二个指针恰好到达要删除的指针的前面,删除下一个结点即可。另外,链表头的处理也是一需要考虑的地方,通过看别人的链表相关的代码,可以设一个prehead,prehead->next = head;,这样就不用单独处理表头结点了,好机智,学习了。 /** * Def原创 2016-03-22 17:36:02 · 357 阅读 · 0 评论 -
LeetCode String to Integer (atoi) c++
首先总结下做题的过程,最开始我又忘记了应该先明确思路再写代码的信条,写一点提交一次,改一次,效率极低,直到自己崩溃,推翻重做。 问题分析(题目中有) String转int 考虑空格问题 考虑+,-号问题 考虑整型越界问题 解决办法 考虑从前遍历还是从后遍历 空格问题 空格在数字前:跳过 空格在数字中间:跳出 +号问题:在数字前跳过即可,在数字中跳出 -号问题:在数字前,记录,最后结果*-1,在原创 2015-11-19 16:55:44 · 569 阅读 · 0 评论 -
Number of 1 Bits (求32位二进制数中1的)
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight). For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return原创 2015-03-18 16:43:46 · 799 阅读 · 0 评论 -
Leetcode Palindrome Number C++
思路: 确定一个数的第几位是什么数 回文数是自然数 不能越界 从数字的左侧和右侧同时遍历,判断是否相等 实现确定第几位 /* n:是数字 i:数字的第i位 */ int getnum(int n,int i) { n = n / _Pow_int(10, i - 1);//比如求12345的第3位,这一步求得你= 123 int forward = n / 10;//forward原创 2015-12-01 17:56:32 · 1051 阅读 · 0 评论 -
Leetcode 299. Bulls and Cows
思路:遍历secret和guess,若相等则A++。不相等的时候:分别设两个大小为10数组,分别保存secret和guess中数字出现的个数。最后遍历两个数组,同一个数字数目最小的,加到B上。比如secret[1] = 3,guess[1] = 2,则B = B+2;准备工作: char转int:char a = 1;int b = a-'0'; int 转string:使用sstream,原创 2016-03-22 10:37:27 · 326 阅读 · 0 评论 -
Leetcode 303. Range Sum Query - Immutabled
最开始用最简单的思路写的,如下//Time Limit Exceeded class NumArray { public: NumArray(vector &nums) { num = nums; } int sumRange(int i, int j) { int sum = 0; for (int x = i;x<j+1;x++) {原创 2016-03-09 19:21:35 · 390 阅读 · 0 评论 -
leetcode 374. Guess Number Higher or Lower
题目: 一个给定的数字n。 别人写一个1到n之间的数字,让你的函数根据guess函数猜出来,他写的是啥。 guess函数可以理解为: int guess(int num) { if(num==num_pick) return 0; else if(num >num_pick ) return -1; else return 1; } 实现当然可以用遍历,但是T原创 2016-07-26 19:20:20 · 308 阅读 · 0 评论