摘要: 题目: 解题思路: 用两个栈即可实现。 stack<char> left; stack<char> right; 将所有括号依次压入left栈中, 1.如果发现left栈顶为右括号,则将其压入右栈。 2.如果发现left栈顶为左括号,则查看left与right栈顶的括号是否匹配,如果匹配,则匹配的括 阅读全文
posted @ 2018-05-06 23:29 且听疯吟吖 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题思路: s[m][n] = s[m-1][n-1] + s[m-1][n]; 下一行的元素由上一行的元素两两相邻相加得到,最后再再两端加1即可。 阅读全文
posted @ 2018-05-06 23:18 且听疯吟吖 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 解题思路: 1.循环交换位,交换16次即可。第i位与第33-i位交换。 代码如下: 2.将该数所有的位顺序颠倒即可(移位方向相反),即将原来的100变为001. 阅读全文
posted @ 2018-05-06 23:14 且听疯吟吖 阅读(3170) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题思路: 1.移位操作,每次移动一位。比较两个整数的最后一位是否相等,得出结果。 2.转换为第44题,求数字中1个数; val = x^y; 求出VAL中1的个数即可。 代码如下: 阅读全文
posted @ 2018-05-06 23:08 且听疯吟吖 阅读(923) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题思路: 1.直接移位即可,右移32次,每次判断最后一位是否为1即可; 代码如下: 2.观察n&n-1,则将消除一位1. 阅读全文
posted @ 2018-05-06 23:02 且听疯吟吖 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题目: 代码实现: 阅读全文
posted @ 2018-05-06 22:55 且听疯吟吖 阅读(2346) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题思路: 拿到本题,首先想到的是用循环解决该问题,实际提交代码后,超时。后来参考相关答案给出的结果,确实非常精简。 即如果该数能被3的n次方的最大整数整除,被该数即为3的幂。 3的n次方32位的最大整数为1162261467。 代码实现: 阅读全文
posted @ 2018-05-06 22:52 且听疯吟吖 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题思路: 代码实现: 阅读全文
posted @ 2018-05-06 22:47 且听疯吟吖 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题思路: 1.n同时被3和5整除输出“FizzBuzz”; 2.n只能被3整除输出"Fizz"; 3.n只能被5整除输出"Buzz"; 4.其他输出数字; 代码实现: 阅读全文
posted @ 2018-05-06 22:43 且听疯吟吖 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 题目: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素x推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: 解题思路: 使用两个栈,一个栈保存所有的操 阅读全文
posted @ 2018-05-06 22:35 且听疯吟吖 阅读(811) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题思路: reset操作: 记录下数组的原始位置,reset操作时,直接返回原数组的拷贝即可。 shuffle: 将数组中的每个数与数组中的随机位置进行交换即可。关键点在于如何找到随机交换的位置,并且保证概率相同。 及第i个数可能与数组中任意一个数进行交换。 int t = (i + ra 阅读全文
posted @ 2018-05-06 22:21 且听疯吟吖 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题思路: 本题简单,动态规划即可实现。由于不能允许相邻的房屋同时被打劫。则如果打劫了第i间房间,则第i-1间房间不能被打劫,设前i间房间打劫所得最大金额为dp[i]。 因此得到递推公式: dp[i] = max(dp[i-1],dp[i-2] + nums[i]); 代码如下: 阅读全文
posted @ 2018-05-06 20:14 且听疯吟吖 阅读(814) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题思路: O(N)的解法: 分治法: 阅读全文
posted @ 2018-05-06 15:13 且听疯吟吖 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题思路: 用后一天减去前天得到隔天的利润,然后将该题目转化为求最大子序列和的问题。 另外一种解法,当天的价格减去今天以前的股票最小值: 阅读全文
posted @ 2018-05-06 15:05 且听疯吟吖 阅读(2435) 评论(0) 推荐(0) 编辑
摘要: 题目: 本题解题思路: 思考过程中考虑到可以用两个map来解决该问题,但发现比较麻烦,后自己写了一个解决方案: 核心数据结构: 用一个排序的双向链表来存储所有的key和key的计数,数列的计数从小到大。 如果返回最小计数的key,则返回队列中的头元素,如果返回最大计数的key,则返回队列的最末位的元 阅读全文
posted @ 2018-05-06 14:56 且听疯吟吖 阅读(766) 评论(0) 推荐(0) 编辑