04 2019 档案
摘要:大数的之间的进制转换不能简单的用取余法来做,这样会导致溢出。以牛客网的这道题 "10进制 vs 2进制" 为例,题目给的数字已经达到了1000位,即使用long long类型也没办法存储,所以要用字符数组来存储。然后用 模拟手算除法 的方式来进行进制转换。 代码如下: include using n
阅读全文
摘要:[toc] 题目链接 "https://leetcode.com/problems/surrounded regions/" 注意点 边缘不算包围‘O’ 解法 解法一:dfs。找处在边缘上的 然后dfs将与之相邻的 都改为 。处理完之后再把这时候的 改为 , 改为 即可 解法二:bfs。基本上一样的
阅读全文
摘要:[toc] 题目链接 "Word Ladder LeetCode" 注意点 每一个变化的字母都要在wordList中 解法 解法一:bfs。类似走迷宫,有26个方向(即26个字母),起点是beginWord,终点是endWord。每一次清空完队列ret+1表示走了一步。bfs可以保证是最短路径。 c
阅读全文
摘要:阶乘会使得位数增长的非常快,比如20!的值的位数就已经要突破long long的上限了。所以常规的做法是处理不了的,要通过数组的方式来处理。当然这个数字本身不能超过int的范围,并且要提前预估这个数字的阶乘会有多少位。 以计算5的阶乘为例,来说明这个算法: STEP1 初始化 STEP2 从2开始乘
阅读全文
摘要:[toc] 题目链接 "Sum Root to Leaf Numbers LeetCode" 注意点 不要访问空结点 解法 解法一:递归。sum表示从root到当前节点的值的和,ret是所有路径和。如果没有左右儿子说明是叶子节点,就把sum加到ret,否则把当前的sum 10加上自己的值。 解法二:
阅读全文
摘要:[toc] 题目描述 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值。 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可。 输入描述 有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M 10 5 1 3 3 3 4 输出 3 思路 d
阅读全文
摘要:[toc] 题目描述 使用代理服务器能够在一定程度上隐藏客户端信息,从而保护用户在互联网上的隐私。我们知道n个代理服务器的IP地址,现在要用它们去访问m个服务器。这 m 个服务器的 IP 地址和访问顺序也已经给出。系统在同一时刻只能使用一个代理服务器,并要求不能用代理服务器去访问和它 IP地址相同的
阅读全文
摘要:[toc] 题目描述 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC DE G F 其中“ ”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。 输入描述 输入包括1行字符串,长
阅读全文
摘要:[toc] 题目描述 一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1 总共有六种不同的拆分方式。 再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,
阅读全文
摘要:[toc] 题目链接 "Valid Palindrome LeetCode" 注意点 忽略大小写字母的不同 解法 解法一:i指向开头,j指向结尾,一起向中间移动,遇到大写字母就转成小写字母,遇到非字母就跳过。时间复杂度O(logn) 小结 是c++自带的用于判断是否是字母的函数 是统一处理大小写字母
阅读全文
摘要:[toc] 题目链接 "Best Time to Buy and Sell Stock II LeetCode" 注意点 在卖出之前必须要先购入 不限买入卖出次数 解法 解法一:因为股票的原则就是低入高出,因此从第1天开始(下标从0开始)只要当天的价格高于前一天就可以进行一次交易。遍历一趟数组就可以
阅读全文
摘要:[toc] 题目链接 "Best Time to Buy and Sell Stock LeetCode" 注意点 在卖出之前必须要先购入 解法 解法一:遍历一遍,随时记录当前数字之前的最小的数字。将当前数字与当前最小数字相减查看收益。时间复杂度O(n) class Solution { publi
阅读全文
摘要:[toc] 题目链接 "Triangle LeetCode" 注意点 树是以vector的形式给出 贪心算法只能给出局部最优解而不是全局最优解,所以要用dp算法 解法 解法一:以triangle本身为dp数组,状态转移方程为 ,而位于边界的结点则是直接加上上一层的值。 class Solution
阅读全文