首页 > 其他分享 >每日一结

每日一结

时间:2022-09-27 20:35:11浏览次数:47  
标签:nums 每日 一结 当前 ans getOrDefault root 节点

174. 地下城游戏

本题是本人在学习动态规划遇到的第一道比较特殊的题目。
因为此题是倒着推的。因为要求最低血量,如果正着从起点开始求,不能保证后无效性。也就是说,前面的工作并没有解决子问题。
但是倒着推就能完美解决这个问题。
本题还有一个重要的点是,利用算术运算,负负得正,很便捷地解决了扣血的情况。
如果遇到加血的情况,此时就会出现血量为负数的情况,那么只需要将其更正为1即可。
因为是倒着推的,所以需要初始化重点,和最末行和最末列。


198. 打家劫舍

本题的特殊要求是得隔着取数字,所以就有两种情况,是否取当前数字。
ans[i] = Math.max(ans[i - 1]【取当前数字】, ans[i - 2] + nums[i - 1]【不取当前数字】)
初始化第零个房间为0元,第一个房间为第一件房间的金钱数。


337. 打家劫舍 III

本题作为二叉树情况下的隔着取数字。
我们需要设置两个HashMap,一个记录不取当前节点,另一个记录取出当前节点。键为当前节点,值为自此点而下的val之和。
f.put(root, root.val + g.getOrDefault(root.left, 0) + g.getOrDefault(root.right, 0));
如果取当前节点,则加入当前节点的值以及不取其左右子节点的函数值。
g.put(root, Math.max(f.getOrDefault(root.left, 0), g.getOrDefault(root.left, 0))+Math.max(f.getOrDefault(root.right, 0), g.getOrDefault(root.right, 0)));
如果不加入当前节点,则当前节点的值等于其左右子节点值得最大值。而其左右子节点又分为取与不取,再求取与不取得最大值。


674. 最长连续递增序列 & 300. 最长递增子序列

前者呢需要递增得字串连续,后者则不需要。
因为需要连续所以只有后者比前者大的时候才加一if(nums[i] > nums[i - 1]) {ans[i] = ans[i - 1] + 1;}
不需要连续呢,则需要从此处再次从前遍历,只要找到比当前小的数字就和当前答案进行比较迭代。
for(int j = 0; j < i; j++) {
if(nums[j] < nums[i]) {//以当前数字为结尾
ans[i] = Math.max(ans[i], ans[j] + 1);//持续更新ans[i]
}
}

标签:nums,每日,一结,当前,ans,getOrDefault,root,节点
From: https://www.cnblogs.com/xtag/p/16735831.html

相关文章

  • LeetCode739 每日温度
    LeetCode739每日温度classSolution:defdailyTemperatures(self,temperatures:List[int])->List[int]:ans,stack,n=[0]*len(temperatures),[......
  • 每日一结
    120.三角形最小路径和要求自顶到下的最短路径,只需要把从顶到各个位置的值都求出,最后再找出最底行的最小值即可。因为当前位置可由其正上方或者斜上方得来,所以只需要初始......
  • pta甲级1005-1009+cf每日水题
    1005:简单模拟,数组打表1#include<bits/stdc++.h>2usingnamespacestd;3#defineintlonglong4#defineIOSios_base::sync_with_stdio(0);cin.tie(0);cout.......
  • 前端-每日一题
    20220919202121222324......
  • 每日总结
    今天依旧是动态规划。(倒着回去)64.最小路径和初始一下两边的值(从左上角开始的第零行和第零列),之后的每一个格子由紧挨着它的上左两个格子的最小值加上当前格子的值得来。......
  • 【每日一句sdc】create_gnerated_clock
    用途:当clk信号穿过触发器时,dc会把其当成普通信号处理,若果仍想其作为时钟信号往下传播,则需要将其声明成generated_clock, 是generate_clock的场景??todo协议:create_genera......
  • 每日总结
    今天开始了动态规划题目的学习。以前对于,最优子结构,重叠子问题这句话的理解可以说是,没有什么理解。其实就是,我当前需要解决的这个问题,可以由之前的已经有答案的问题得来......
  • 微信发送新闻每日汇报
    运行代码的时候要打开微信o#coding=utf8importpyautoguiimportpyperclipimporttimeimportrequestsfromlxmlimportetreedefget_requests():headers......
  • 每日一结
    对于LCP42.玩具套圈此题而言。本人一开始想到的是以圈为基,但是一直不对。在修改了好多次后,看到答案,梦地醒悟,为啥不已toy为基。可见有时候视角的转换尤为重要。余下依......
  • 每日一结
    尤其注意递归的条件,分析好了各种情况。再下手写(不然堆积屎山堆积)。例如求二叉树的最小深度,就分三种情况。无子节点;有一个子节点;有两个子节点。那么就很明晰public int......