- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 No.6 Single Number II 一组数都出现n次除了某个数,找出这个数
leetcode题目:一个数组中除了一个数字其他的都是出现3次,请找出这个数字。实现用位处理!!一个数字出现三次,则其对应的二进制位也出现3次;则对于二进制位不是3的整数倍的数出现的次数不为3;class Solution {public: int singleNumber(vector& nums) { int three[32]={0
2015-11-01 15:19:05 291
原创 No.5 Single Number 找出一组数中落单的数
一个数组中除了一个数字其他的都是出现两次,请找出这个数字。1、0(n)时间和空间复杂度用到了hash。创建一个set数组,依次扫描所给数组,若跟set里面数重复则不是,且从set里删除这个数,若不重复则加入set,最后留在set里面的那个数就是所需的数字。set不存重复的key值;class Solution {public: int singleNumber
2015-11-01 14:08:37 249
原创 No.4 happy number floyd判圈法
幸福数字是指这样的数:从一个正数开始,用它位数的平方和来代替它,直到最后这个数字为1(保持);或者说会无穷循环下去。会最终停留在1的数字被称为幸福数。example: 19 is a happy number 12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1写一个算法来确定一个数字是否是幸福数。思
2015-11-01 13:32:37 284
原创 No.3 Add Digits (digital root)
题目:给定一个非负整数num,重复加它各个位数上的数字,直到最后得到的是一位数;返回这个一位数。example:num=38,步骤是3+8=11,1=1=2,返回2。要求:无循环/递归,在O(1)时间Could you do it without any loop/recursion in O(1) runtime?本题知识点:digital root
2015-11-01 13:31:26 244
原创 No.2 flip game 翻转游戏
一个字符串包含+和-;你和你朋友轮流可以将++翻转为--;当不能再翻转时获胜。给出经过一个有效的翻转之后字符串的所有可能状态;如果没有可行的翻转,则返回一个空字符串[];思路:扫一遍s。判断s[i]和s[i+1]class Solution{ public:vector getNumsOfPossibleMoves(string s){vector moves;
2015-11-01 13:29:55 409
原创 No.1 Nim Game 取物游戏
有一堆石头,两人分别取1-3个,最后取走石头的人获胜;思想:动态规划、状态转化思路:先通过列举的方法推导前几种数字当n∈[1,3]时,先手必胜。当n == 4时,无论先手第一轮如何选取,下一轮都会转化为n∈[1,3]的情形,此时先手必负。当n∈[5,7]时,先手必胜,先手分别通过取走[1,3]颗石头,可将状态转化为n == 4时的情形,此时后手必负。当n
2015-11-01 13:27:50 396
原创 n从1开始,可以对n加1,或者加倍,要使n为某个数的最少步数
//n从1开始,可以对n加1,或者加倍,要使n为2014的步数1、2014的二进制为11111011110,需要的步数是2的最大幂次(加倍)加上最高位后面为1(加1)的个数。2014>2^10;10+8=182、程序计算 int minimum_step(int n){ vector dp(n+1); dp[1]=0; for(int i=2;i<=n;i+
2015-11-01 11:33:01 2233 1
原创 我的第一篇博客
为了好好的练习编程,以及查阅分享资料,决定以后写写博客,以前一直用的是有道云笔记记录。刚刷了leetcode上面的几道题。以后就将里面的题解记录在博客。
2015-11-01 10:46:05 190
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人