力扣】刷题备忘录-动归-96. 不同的二叉搜索树

96. 不同的二叉搜索树 这个解法属于那种,想不到就难,知道了就豁然开朗那种。 只要想到其实一棵树的可能数量 = 左子树的可能数量 × 右子树的可能数量。算法就基本没难度了。 详细讲解逻辑可以看:代码随想录的视频链接, 我这里就不赘述了。 class Solution {public: int numTrees(int n) { vector<int> dp(n+1); dp[0] = 1; fo...

力扣每日一题:1466. 重新规划路线(2023-12-07)

力扣每日一题 题目:1466. 重新规划路线 日期:2023-12-07 用时:45 m 36 s 时间:37ms 内存:69.64MB 代码: class Solution { public int minReorder(int n, int[][] connections) { list = new List[n]; Arrays.setAll(list, k -> new ArrayList<...

2048. 下一个更大的数值平衡数 --力扣 --JAVA

题目 解题思路 根据n的最大值可以得知最大n的最小数值平衡数;从n+1开始遍历并判断是否为数值平衡树; 代码展示 class Solution { public int nextBeautifulNumber(int n) { //0~10^6 最小平衡数的最大值为为1224444 while (n < 1224444){ n++; if(isBalance(n)){ return n; } } re...

230. 二叉搜索树中第K小的元素 --力扣 --JAVA

题目 解题思路 利用List存储数据;遍历整个树,读取数各个节点的value;对value进行排序,获取第k个最小值。 代码展示 class Solution { private List<Integer> list = new ArrayList<>(); public int kthSmallest(TreeNode root, int k) { getVal(root); list.sort(n...

100143. 统计已测试设备 --力扣 --JAVA

题目 解题思路 遍历整个循环,根据当前设备的电池百分比来修改后续设备的电池量,并统计小号设备的数量。 代码展示 class Solution { public int countTestedDevices(int[] batteryPercentages) { int n = batteryPercentages.length; int ans = 0; for(int i = 0; i < n; i...

12.20力扣

2828. 判别首字母缩略词 题目介绍:   给你一个字符串数组 words 和一个字符串 s ,请你判断 s 是不是 words 的 首字母缩略词 。   如果可以按顺序串联 words 中每个字符串的第一个字符形成字符串 s ,则认为 s 是 words 的首字母缩略词。例如,“ab” 可以由 [“apple”, “banana”] 形成,但是无法从 [“bear”, “aardvark”] 形...

力扣每日一题:2008. 出租车的最大盈利(2023-12-08)

力扣每日一题 题目:2008. 出租车的最大盈利 简短说明 今天的解题有点曲折,完全是一步一步优化来的,看上面的截图,最开始的超时,超时后我加了记忆化搜索,虽然通过了,但是执行时间不太理想,接下来我稍微优化了下,但是执行时间基本没动过,接下来,又尝试着去掉递归,这次效果很显著,执行时间直接从2000多毫秒降低到了18毫秒 过程 下面我分别把这四次的代码都展示出来,记录下每次的优化,代码展示顺序是按照...

98. 验证二叉搜索树 --力扣 --JAVA

题目 解题思路 需要当前节点的值和父节点作比较,所以基础方法无法满足需要对方法进行重载或建立新的函数;val的值超出Integer.MAX_VALUE所以需要通过Long的最大最小值来进行初始化赋值;循环结束条件,当前节点为空;限定当前节点val的取值范围,并进行递归循环。 代码展示 class Solution { public boolean isValidBST(TreeNode root) {...

1466. 重新规划路线 --力扣 --JAVA

题目 解题思路 选择一个数据结构--数组用来存储可到达0的所有节点,为便于编写首先需添加元素0;while循环持续遍历整个路径数组,将可到达的添加到数据结构中,记录添加的数量,用来跳出循环(左右指针遍历可能会缩减时间); 代码展示 class Solution { public int minReorder(int n, int[][] connections) { boolean[] road = ...

102. 二叉树的层序遍历 --力扣 --JAVA

题目 解题思路 利用Map以层级作为key进行初始数据存储,最后再遍历Map存储结果到List中;添加当前节点到当前层级,通过递归传递层级到下一层即当前节点的左右子树; 代码展示 class Solution { private Map<Integer,List<Integer>> levelMap = new TreeMap<>(); public List<List<Integer>> level...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.003256(s)
2024-05-02 09:05:35 1714611935