10 2020 档案
摘要:#剑指 Offer 47. 礼物的最大价值 解题思路 因为对于一个点,只可能是从上方或左方累加过来,那么选择值最大的那个方向累加即可。 转移方程: f[i][j]+=max(f[i-1][j],f[i][j-1]); 在原矩阵上操作,最后返回最右下角的数即可。 代码 class Solution {
阅读全文
摘要:#剑指 Offer 46. 把数字翻译成字符串 解题思路:深度优先搜索(dfs) 将数字转成字符串,从第一个字符开始,索引index=0,有两种方案,以12258为例: 方案1:1转换成b 推进1位:dfs(index+1) 方案2:12 < 25,可以转换,index+=2; 推进2位:dfs(i
阅读全文
摘要:#剑指 Offer 45. 把数组排成最小的数 解题思路 将数字转换为字符串,按照字典序排序所有字符串 排序函数 str1.compare(str2) > 0 str1 > str2 < 0 str1 < str2 = 0 str1 = str2 比如“30”和“9”,“300”和“30” 对于每一
阅读全文
摘要:#剑指 Offer 40. 最小的k个数 ##思路 快排思想+位置判断 在快排中判断:如果快排的分割点的索引恰好是k-1,那么停止递归直接输出前k个数 ##代码 class Solution { public: int k1; void quick_sort(vector<int>& arr,int
阅读全文
摘要:#剑指 Offer 39. 数组中出现次数超过一半的数字 参考:> https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/solution/mian-shi-ti-39
阅读全文
摘要:#剑指 Offer 35. 复杂链表的复制 参考:> https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof/solution/javashi-xian-jian-zhi-offerliang-chong-si-lu-hashm
阅读全文
摘要:#剑指 Offer 33. 二叉搜索树的后序遍历序列 参考> https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof/solution/mian-shi-ti-33-er-cha-sou-su
阅读全文
摘要:#剑指 Offer 32 - I. 从上到下打印二叉树 ##思路 一种是使用先序遍历来递归遍历所有节点,记录节点值和层数,然后按照层数进行输出 另一种是使用队列进行广度优先搜索: 每pop一次节点,就把该节点的左右子节点(如果有的话)放在队列后面。这样可以保证每一层的节点在队列中是紧挨着的 由于广度
阅读全文
摘要:参考:> https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof/solution/mian-shi-ti-28-dui-cheng-de-er-cha-shu-di-gui-qing/ #剑指 Offer 28. 对称的二叉树 #
阅读全文
摘要:#剑指 Offer 26. 树的子结构 ##思路 递归 参考: ##代码 class Solution { public: bool recur(TreeNode* A, TreeNode* B) { if(A==NULL&&B!=NULL) return false; if(B==NULL) re
阅读全文
摘要:#剑指 Offer 25. 合并两个排序的链表 建立一个伪头节点,遍历l1,l2 ##代码 class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1==NULL) return l2; i
阅读全文
摘要:#剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 ##暴力法,双指针法 暴力法就是两次循环,一次找奇数,一次找偶数 双指针法就是两个指针i,j分别指向头和尾 指针i 从0开始,遇到奇数就i++;遇到偶数就与j交换,同时j--; 指针j 从length()-1开始,遇到偶数就j--;遇到奇数
阅读全文
摘要:#剑指 Offer 20. 表示数值的字符串 可以用有限自动机 也可以暴力去做,就是提交的次数有点多,我提交了20次。不停的测试所有的边界条件 大体思路是 先判断有没有e 1.有e则用substr()得到前后两个数字str1,str2 2.没有e得到s 写两个判断函数judge1,judge2 ju
阅读全文
摘要:#剑指 Offer 16. 数值的整数次方 参考> https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/solution/mian-shi-ti-16-shu-zhi-de-zheng-shu-ci-fang-kuai
阅读全文
摘要:#剑指 Offer 13. 机器人的运动范围 参考: https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/solution/ji-qi-ren-de-yun-dong-fan-wei-yuan-shi-dfshe-b
阅读全文
摘要:#一道关于深度优先搜索的面试题 ##题目 给你一张黑白图片,像素点有0,1,两种值,求像素点值为1的点连起来的最长长度? PS:当时回答很跪,但是做到剑指 Offer 12. 矩阵中的路径这一题时,得到了启发,根据如下大佬的详细题解,想出来了答案 ##代码 #include <iostream> #
阅读全文
摘要:#剑指 Offer 07. 重建二叉树 ##递归1 class Solution { public: TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) { if(preorder.size()==0) return NU
阅读全文
摘要:#leetcode上容易出现的一个错误 Line 16: Char 5: error: control may reach end of non-void function [-Werror,-Wreturn-type] class Solution { public: int Hash[10000
阅读全文
摘要:#1095 解码PAT准考证 (25分) 参考:> https://blog.csdn.net/shiliang97/article/details/100592165 ##测试点3,4段错误 开辟的大数组每次都要更新,全部归零。 ##测试点2:考场编号输入008,输出不能是8,必须也是008 ##
阅读全文
摘要:#1094 谷歌的招聘 (20分) ##测试点2的坑 “例如在 200236 中找 4 位素数,0023 算是解” 这句话的意思是23是错误的,0023是正确的,只需把截取出的字符串输出就行,而不是输出转换的数字 ##代码 #include <iostream> #include <vector>
阅读全文
摘要:#1093 字符串A+B (20分) ##哈希表 1.哈希表判断该字符是否出现过 题目说字符是由“由可见 ASCII 字符 (即码值为32126)和空格组成的” 空格ascii码是32,其余字符的范围是32126,建立一个127的数组作为哈希表使用。 2.因为有空格,所以用getline()读取 #
阅读全文
摘要:#1090 危险品装箱 (25分) ##一个小坑 访问vecotr中不存在的下标,比如-1,会随机返回一个巨大的值 读取某个货物的编号,先判断它是否有不相容的物品,比如0001,没有不相容的货物,不用判断。 用两个哈希表:一个存储下标,一个存储是否有该货物 一个货物有可能与不止一个货物不相容 比如2
阅读全文
摘要:#1088 三人行 (20分) ##两个坑 1.理解题意 直接穷举,奥里给!甲的值从10~99,每一个都根据题意进行判断,符合条件的就存储。 2.丙的能力值类型设置成double,不要设置成int ##代码 #include <iostream> #include <vector> #include
阅读全文
摘要:#1087 有多少不同的值 (20分) ##测试点3段错误 n=10000时,结果为10333 建立大数组的时候要大于这个数 ##代码 #include <iostream> #include <vector> #include <string> #include <cstdio> //scanf
阅读全文
摘要:#1085 PAT单位排行 (25分) 参考> https://www.cnblogs.com/Dup4/p/9433200.html ##测试点5的坑 必须取完整数之后再排序,比如 两个单位192.1<192.2 在取整之前他们的排名是不同的,但是取完整数之后排名就相同了。 ##代码 #inclu
阅读全文
摘要:#1084 外观数列 (20分) ##难点在理解题意 简而言之,从一个字符串起点开始数,有几个相同的字符,例如11223,结果是122231(1有两个,2有两个,3有1个),组成新的字符串,不断的更新 ##代码 #include <iostream> #include <vector> #inclu
阅读全文

浙公网安备 33010602011771号