上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: 剑指 Offer 37. 序列化二叉树 这里想到的比较容易的方式是使用层序遍历的结果来序列化,再利用层序遍历的方式来反序列树。 但是需要注意的是,由于我们要序列化的树是唯一的,所以我们需要标记空节点。 并且,我们将序列化的结果按照顺序加入到数组中,查看根节点和子树的关系。 对于某个节点node,它在 阅读全文
posted @ 2022-02-11 19:58 NullPointer_C 阅读(31) 评论(0) 推荐(0)
摘要: 剑指 Offer 59 - II. 队列的最大值 用一个queue和一个deque来实现,queue用来正常的push_back和pop_front,deque用来存储最大值。 如果新加入的value比deque的尾端更大,那么deque就一直在尾端出队,直到尾端的值比value更大或者队列为空。 阅读全文
posted @ 2022-02-10 01:05 NullPointer_C 阅读(37) 评论(0) 推荐(0)
摘要: 剑指 Offer 59 - I. 滑动窗口的最大值 理解起来不难,可以一直维护最大值及其下标即可,如果窗口内有比当前最大值更大的,则更新最大值即可,如果当前最大值已经不在窗口内了,需要在窗口中重新找过一个最大值。 class Solution { public int[] maxSlidingWin 阅读全文
posted @ 2022-02-10 00:39 NullPointer_C 阅读(27) 评论(0) 推荐(0)
摘要: 剑指 Offer 67. 把字符串转换成整数 这破题,麻烦得一匹的同时,还要面向测试用例编程,非常麻烦,如果用户真的输入这种,应该在前端就给return掉,给后端只会更加麻烦。😭 class Solution { public int strToInt(String str) { char[] c 阅读全文
posted @ 2022-02-09 01:27 NullPointer_C 阅读(32) 评论(0) 推荐(0)
摘要: 剑指 Offer 20. 表示数值的字符串 这种大模拟题真的就是磨练心态的,太麻烦了,wa得没脾气。 总结起来就是一定要有数字,小数点前必须有数字并且小数点前面不能有e,e前面必须有数字且前面不能有e,有e之后为了有指数,需要重置$numCnt$,符号必须出现在第一位或者在e后面。 class So 阅读全文
posted @ 2022-02-09 01:04 NullPointer_C 阅读(56) 评论(0) 推荐(0)
摘要: 剑指 Offer 31. 栈的压入、弹出序列 连模拟都没有想到了😂。 我们不断将入栈序列$pushed$入栈,若栈顶元素和$popped$遍历到的位置$popped[pos]$相同,则表示找到了同样的出栈序列,则将$pos$加1,否则继续入栈,直到栈顶和遍历至的位置相同。 最后判断$pos$是否遍 阅读全文
posted @ 2022-02-08 00:45 NullPointer_C 阅读(29) 评论(0) 推荐(0)
摘要: 剑指 Offer 29. 顺时针打印矩阵 老面孔了,只要画图注意边界即可。 class Solution { public int[] spiralOrder(int[][] matrix) { int u = 0, d = matrix.length - 1; // 排除非矩阵的情况 if(d < 阅读全文
posted @ 2022-02-08 00:36 NullPointer_C 阅读(30) 评论(0) 推荐(0)
摘要: 剑指 Offer 62. 圆圈中最后剩下的数字 这里没有想到什么更好的办法,只好模拟了,每一次要删除的位置idx可以从上一次删除的位置idx模拟得到。 若上一次要删除的位置为$idx$,那么再下一次的删除位置就需要加m,由于这里说的是第$m$个,并且对于后面的数字来说,就相当于往前移动了1为,所以换 阅读全文
posted @ 2022-02-08 00:22 NullPointer_C 阅读(43) 评论(0) 推荐(0)
摘要: 剑指 Offer 57 - II. 和为s的连续正数序列 想不到比较好的办法,只好暴力从每一个位置$i$往后枚举。 class Solution { public int[][] findContinuousSequence(int target) { List<List<Integer>> res 阅读全文
posted @ 2022-02-07 23:58 NullPointer_C 阅读(39) 评论(0) 推荐(0)
摘要: 剑指 Offer 14- I. 剪绳子 这里没有马上想到数学的方法,而是先想到了dp的方法。 对于一个整数$i$,如果可以被划分为$j$和$i - j$,那么设$dp[i]$为整数$i$的最大划分,则可以枚举$1$到$i$之间的所有$j$,\(dp[i] = Math.max(dp[i], j * 阅读全文
posted @ 2022-02-07 23:11 NullPointer_C 阅读(36) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 9 下一页