题目: 解题思路: 异或从0到n进行异或得到结果val,再将val与数组中每个元素进行异或,即可得到结果。次题的解法类似一个1到n的数列中有一个数出现了两次,找出该数的解法一样。 代码如下: 解法二: ...
分类:
编程语言 时间:
2018-05-07 00:42:13
阅读次数:
231
题目: 解题思路: 1.直接移位即可,右移32次,每次判断最后一位是否为1即可; 代码如下: 2.观察n&n-1,则将消除一位1. ...
分类:
编程语言 时间:
2018-05-06 23:31:00
阅读次数:
241
题目: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素x推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: 解题思路: 使用两个栈,一个栈保存所有的操 ...
分类:
编程语言 时间:
2018-05-06 22:53:16
阅读次数:
197
题目: 解题思路: 本题简单,动态规划即可实现。由于不能允许相邻的房屋同时被打劫。则如果打劫了第i间房间,则第i-1间房间不能被打劫,设前i间房间打劫所得最大金额为dp[i]。 因此得到递推公式: dp[i] = max(dp[i-1],dp[i-2] + nums[i]); 代码如下: ...
分类:
编程语言 时间:
2018-05-06 20:36:03
阅读次数:
325
题目: 解题思路: 用后一天减去前天得到隔天的利润,然后将该题目转化为求最大子序列和的问题。 ...
分类:
编程语言 时间:
2018-05-06 16:29:00
阅读次数:
214
解题思路: 利用递推公式dp[i] = dp[i-1] + dp[i-2].我们可以知道最后一步可以上一个台阶或者上两个台阶。 代码: ...
分类:
编程语言 时间:
2018-05-03 23:33:04
阅读次数:
211
题目: 解题思路: 这道题目比较有意思,从表面上看肯定是用二分查找来计算,但是如何找到第一个错误的版本是个难点。用res记录下每次错误的版本。 类似于在一个已经排序好的数组中查找第一个比该数目小但最接近该数的值。此题目作为重点题目变形题目,平时需要多加练习。 代码如下: 代码: ...
分类:
编程语言 时间:
2018-05-03 22:42:38
阅读次数:
426
题目: 1.解题思路: 统计字符串中数字的个数,并组成新的字符串,下一个循环继续统计新的字符串中的字符的个数。 ...
分类:
编程语言 时间:
2018-05-03 14:28:37
阅读次数:
289
题目: 1.解题思路: 本题比较简单,直接查找比对即可。不用考虑KMP算法等比较复杂的算法。 代码如下: ...
分类:
编程语言 时间:
2018-05-03 14:23:55
阅读次数:
158