首页 > 其他分享 >day33

day33

时间:2024-10-13 10:59:18浏览次数:3  
标签:right return nums int day33 dp size

打家劫舍
class Solution {
public:
int rob(vector& nums) {
if (nums.size() == 0) return 0;
if (nums.size() == 1) return nums[0];
vector dp(nums.size(), 0);
dp[0] = nums[0];
dp[1] = max(nums[0], nums[1]);
for(int i = 2; i < nums.size(); ++i)
{
dp[i] = max(dp[i-2] + nums[i], dp[i-1]);
}
return dp[nums.size() - 1];
}
};

打家劫舍II

class Solution {
public:
int rob1(vector& nums) {
if (nums.size() == 0) return 0;
if (nums.size() == 1) return nums[0];
vector dp(nums.size(), 0);
dp[0] = nums[0];
dp[1] = max(nums[0], nums[1]);
for(int i = 2; i < nums.size(); ++i)
{
dp[i] = max(dp[i-2] + nums[i], dp[i-1]);
}
return dp[nums.size() - 1];
}
int rob(vector& nums) {
if (nums.size() == 0) return 0;
if (nums.size() == 1) return nums[0];
vector vec1;
for(int i = 0; i < nums.size() - 1; ++i)
{
vec1.push_back(nums[i]);
}
vector vec2;
for(int i = 1; i < nums.size(); ++i)
{
vec2.push_back(nums[i]);
}
return max(rob1(vec1), rob1(vec2));
}
};

打家劫舍III
/**

  • Definition for a binary tree node.

  • struct TreeNode {

  • int val;
    
  • TreeNode *left;
    
  • TreeNode *right;
    
  • TreeNode() : val(0), left(nullptr), right(nullptr) {}
    
  • TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    
  • TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
    
  • };
    */
    class Solution {
    public:
    vector traversal(TreeNode root)
    {
    if(root == nullptr)
    {
    return {0, 0};
    }
    vector left = traversal(root->left);
    vector right = traversal(root->right);
    int val1 = root->val + left[0] + right[0];
    int val2 = max(left[0], left[1]) + max(right[0], right[1]);
    return {val2, val1};
    }
    int rob(TreeNode
    root) {
    vector ret = traversal(root);
    return max(ret[0], ret[1]);

    }
    };

标签:right,return,nums,int,day33,dp,size
From: https://www.cnblogs.com/pwangikun/p/18462013

相关文章

  • leetcode刷题day33|动态规划Part02(62.不同路径、63. 不同路径 II、 343.整数拆分、96.
    62.不同路径机器人从(0,0)位置出发,到(m-1,n-1)终点。动规五部曲1、确定dp数组(dptable)以及下标的含义dp[i][j]:表示从(0,0)出发,到(i,j)有dp[i][j]条不同的路径。2、确定递推公式想要求dp[i][j],只能有两个方向来推导出来,即dp[i-1][j]和dp[i][j-1]。dp[i]......
  • javase复习day33网络编程
    网络编程常见的软件架构BS架构CS架构网络编程小结网络编程三要素三要素小结IPIPV4IPV6IP小结IPV4的地址分类形式常用的CMD命令小结InetAddress的使用publicclassDemo1{publicstaticvoidmain(String[]args)throwsUnknownHostExcep......
  • NOIP2024集训 Day33 总结
    前言若巅峰不在,那就重踏来时之路。今天是\(\texttt{DP}\)优化专题,感觉只要写出了暴力,剩下的部分都挺典的。怎么说,感觉今天状态不太好,老是细节上出现一些很逆天的错误。例如:for(autoi=dp.begin();i!=dp.end();++i){pair<ll,ll>j=*i;ans=j.first......
  • 代码随想录 day33 斐波那契数 | 爬楼梯 |使用最小花费爬楼梯
    斐波那契数斐波那契数解题思路利用代码随想录给出的解题模板进行解题。先确定dp数组和dp下标的含义,之后需要确定遍历的顺序,接着我们通过枚举获得遍历的规矩,最后确定dq的初始值。知识点动态规划心得第一次做动态规划,主要是掌握基本的解题思路,了解一下到底是怎么解决问题的......
  • Day33.元类下的属性查找
    1.元类下的属性查找_对象.方法和类名.方法的查找经过#todo属性查找的原则:对象->类->父类#todo切记:父类不是元类classMymeta(type):n=444def__call__(self,*args,**kwargs):#self=<class'__main__.StanfordTeacher'>obj=self.__new......
  • Day33.定制元类控制类的产生
    1.定制元类控制类的产生_类People继承类Mymeta'''如何自定义元类(type)来控制类的产生'''#todometaclass=type:代表继承原有的元类type#classPeople(metaclass=type):#todometaclass=Mymeta:代表继承自定义的元类MymetaclassMymeta(type):#只有继承了type类的......
  • Day33.内置方法
    1.内置方法_自定义类和内置方法的输出2.内置方法_方法__str__需要返回一个字符串3.内置方法_方法__str__返回对象数据4.内置方法_方法__del__未清理对象先执行类外的程序,然后再执行类下的__del__方法5.内置方法_方法__del__清理对象之后,先执行类下的__del__方法6.内置方......
  • Studying-代码随想录训练营day33| 动态规划理论基础、509.斐波那契函数、70.爬楼梯、7
    第33天,动态规划开始,新的算法......
  • day33-Django3.2(二)
    四、视图django的视图主要有2种,分别是函数视图和类视图.现在刚开始学习django,我们先学习函数视图(FBV),后面再学习类视图[CBV].4.1、请求方式web项目运行在http协议下,默认肯定也支持用户通过不同的http请求发送数据来。django支持让客户端只能通过指定的Http请求来访问到项......
  • Day33 登录注册功能实现
    ​本章节实现了登录注册功能,以及登录成功后,跳转到系统首页一.登录注册页面的切换在MaterialDesign中,有一个Transitioner控件,也就是切换面板控件,它可同时容纳多个不同的窗口内容。其中就有一个属性值:SelectedIndex,根据该属性值来切换呈现不同的选中页内容。注册页......