摘要: 剑指 Offer 61. 扑克牌中的顺子 这里我们可以先对数组排序,这样就更加方便地找递增位置。 如果i与i+1位置的元素相差恰好为1,那么说明此时恰为递增,故不需要用尝试用0来填充,如果否则记录下此时二者之间需要用多少张牌填充,即为$nums[i + 1] - nums[i] - 1$,最后返回0 阅读全文
posted @ 2022-01-30 23:27 NullPointer_C 阅读(32) 评论(0) 推荐(0)
摘要: 剑指 Offer 45. 把数组排成最小的数 这里比较自然和联想到,我们选取字典序较小的在前面,而字典序较大的放在后面。但是这里也存在比如3和30这样的数如何排序的问题。 我们假设这样的两个字符串分别是x和y,组合在一起就是xy或yx,我们需要将较小的放在前面,所以只需要比较xy和yx的大小即可,若 阅读全文
posted @ 2022-01-30 23:08 NullPointer_C 阅读(37) 评论(0) 推荐(0)
摘要: 剑指 Offer 54. 二叉搜索树的第k大节点 由于是BST,那么我们很容易想到将中序遍历的结果取第k大的数即可。 所以我们先用一个list把中序遍历得到的结果存储起来,再从中取第k大的那个即可。 /** * Definition for a binary tree node. * public 阅读全文
posted @ 2022-01-30 22:14 NullPointer_C 阅读(27) 评论(0) 推荐(0)
摘要: 剑指 Offer 36. 二叉搜索树与双向链表 如果不考虑就地转换的话,可以注意到题目给出的二叉搜索树的条件,将所有的节点按照中序遍历的顺序添加进list中,再从头开始将right指针链好,再从尾部开始将left指针链好,再将头尾链好即可。 /* // Definition for a Node. 阅读全文
posted @ 2022-01-30 17:33 NullPointer_C 阅读(32) 评论(0) 推荐(0)
摘要: 剑指 Offer 34. 二叉树中和为某一值的路径 比较常见的回溯,但是回溯需要注意的小地方还是挺多的,特别是对于全局变量,因为它是所有栈空间共享的,所以当退出当前函数栈帧时,一定要将全局变量的栈帧恢复至入栈时刻的。 /** * Definition for a binary tree node. 阅读全文
posted @ 2022-01-30 16:37 NullPointer_C 阅读(33) 评论(0) 推荐(0)