day43专题

补录.day43动态规划

300.最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。  思路:要想清楚dp[i]递推公式的意义是什么,dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度,如下图所示。想要推

day43——C++对C的扩充

四、bool类型 1> C语言是不支持bool类型的,有关bool类型的操作,C语言中使用的都是整型。但是C++中支持bool类型 2> bool类型的值只有两个 一个是真 true(1)表示和假false(0)表示。这里true和false都是关键字,不可以当做标识符 3> 在所有整数中,所有非0数字都表示真,只有0表示假 4> bool类型的数据,默认是使用数字表示真假的,如果要使用单

代码随想录训练营day43|动态规划part10

最长递增子序列 力扣题目链接 class Solution {public:int lengthOfLIS(vector<int>& nums) {int len = nums.size();int result = 1;vector<int> dp(len, 1);for(int i = 1; i < len; i++){for(int j = 0; j < i; j++){if(nums

Day43 | 42. 接雨水 84.柱状图中最大的矩形

语言 Java 42. 接雨水 接雨水 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 思路 本题可以用暴力的方法做,也可以用双指针做,但是本次我们使用单调栈完成 定义一个栈用来存递增的高度。先将放进去一个元素。 定义一个sum 用来最后返回结果。 定义stackTop表示栈顶元素 循环比较栈顶元素和当前循环遍历的

代码随想录训练营Day43

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、完全背包二、零钱兑换2三、爬楼梯进阶版 前言 提示:这里可以添加本文要记录的大概内容: 今天是跟着代码随想录刷题的第43天,主要学了完全背包,零钱兑换2,爬楼梯进阶版 提示:以下是本篇文章正文内容,下面案例可供参考 一、完全背包 思路:和0-1背包不太一样的地方就是,他是从

嵌入式学习——Linux高级编程复习(UDP编程)——day43

1. UDP编程——函数接口 1.1 socket         1. 定义               int socket(int domain, int type, int protocol);         2. 功能                 创建一个用来进程通信的套接字,返回文件描述符         3. 参数                 domain

【前端每日基础】day43——同步异步

同步 (Synchronous) 同步指的是程序中的操作按顺序执行,每个操作必须等待前一个操作完成后才能开始。简单来说,同步操作会阻塞后续操作,直到当前操作完成。同步编程模式适合于需要按顺序执行的任务。 示例: 假设有三个任务 A、B 和 C,它们依次执行。任务 B 必须等待任务 A 完成后才能开始,任务 C 也必须等待任务 B 完成后才能开始。 // 伪代码示例function task

代码随想录算法训练营day43 | 343. 整数拆分、96.不同的二叉搜索树

343. 整数拆分 确定dp数组以及下标的含义:dp[i]表示分拆数字i的最大乘积确定递推公式:dp[i] = max(dp[i], max(i - k) * k, dp[i - k] * k});dp的初始化:dp[0]和dp[1]都是没有意义的,纯粹是为了后续遍历服务的确定遍历顺序:从前向后遍历举例推导dp数组 class Solution:def integerBreak(self, n

代码随想录算法训练营第36期DAY43

DAY43 343整数拆分 注意:当几个数的数值相近,乘积才会尽可能地大(好想:数一大一小,最大当然是自己乘以自己) 代码随想录官方题解: class Solution {public:    int integerBreak(int n) {    vector<int> dp(n+1);    dp[0]=0,dp[1]=0;    dp[2]=1;    //求DP[i]

Day43-Java基础之单元测试和注解

1. 单元测试Junit 1.1 什么是单元测试?(掌握) 对部分代码进行测试。 1.2 Junit的特点?(掌握) 是一个第三方的工具。(把别人写的代码导入项目中)(专业叫法:导jar包) 如果运行结果显示绿色,表示运行结果是正确的。 如果运行结果显示红色,表示运行结果是错误的。 1.3 基本用法:(掌握) 1,一定要先写一个方法。 2,在这个方法的上面写@Test 3,鼠

【随想录】Day43—第九章 动态规划part05

目录 题目1: 1049. 最后一块石头的重量 II1- 思路2- 题解⭐ 最后一块石头的重量 II ——题解思路 题目2: 494. 目标和1- 思路动规五部曲 2- 题解⭐目标和 ——题解思路 题目3: 一和零1- 思路动规五部曲 2- 题解⭐一和零 ——题解思路 题目1: 1049. 最后一块石头的重量 II 题目链接:1049. 最后一块石头的重量 II

Day43 Java反射(二)

Day43 Java反射(二) 文章目录 Day43 Java反射(二)一、利用反射操作方法二、利用反射操作方法里的参数和返回值三、利用反射操作泛型四、利用反射操作注解五、利用反射操作数组 一、利用反射操作方法 1、基本步骤 获取Class对象:要操作一个类,首先需要获取对应的Class对象。可以通过类名.class语法或者Class.forName(“类名”)方法来获取。

Day43 JDK1.8新特性 下 接口的类优先原则和接口冲突,日期时间组件,重复注解

Day43 JDK1.8新特性 1.接口的默认方法与静态方法 从JDK1.8开始,接口中可以有默认方法,既default修饰的方法,此方法可以让接口的实现类所调用,而接 口中的静态方法直接用接口名调用即可 public class Test1 {@Testpublic void test01() {MyClass myClass = new MyClass();myClass.defa

JDK1.8新特性(剩余)【Stream;Optional;接口的类优先原则 和 接口冲突;日期时间组件 ;重复注解】--学习JavaEE的day43

day43 JDK1.8新特性 Stream 简介 Stream(流)是数据渠道,用于操作数据源(集合、数组等),生成元素序列。换言之,集合是存储数据的容器,流使用操作这些数据的 Stream可以对集合进行非常复杂的查找、过滤、映射数据等操作,类似于SQL执行数据库查询。Stream提供了一种高效且易于使用的处理数据的方式 注意: Stream不会存储数据Stream不会改变源数据,通过

代码随想录day43 | 动态规划P5 | ● 1049. ● 494. ● 474.

1049. 最后一块石头的重量 II  有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新

Day43:LeedCode 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

1049. 最后一块石头的重量 II 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头

《从零开始学Swift》学习笔记(Day43)——构造函数继承

原创文章,欢迎转载。转载请注明:关东升的博客 Swift中的子类构造函数的来源有两种:自己编写和从父类继承。并不是父类的所有的构造函数都能继承下来,能够从父类继承下来的构造函数是有条件的,如下所示。 条件1:如果子类没有定义任何指定构造函数,它将自动继承所有父类的指定构造函数。条件2:如果子类提供了所有父类指定构造函数的实现,无论是通过条件1继承过来的,还是通过自己编写实现的,它

【代码随想录】【动态规划】day43:● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

最后一块石头的重量 与分割等和子集类似 思路:尽量分割成两个sum值相近的数组1和2,求其中一个数组为sum(stone)//2时的一种情况 dp[j]:容量(这里说容量更形象,其实就是重量)为j的背包,最多可以背最大重量为dp[j] def lastStoneWeightII(self, stones: List[int]) -> int:dp = [0] * 15001t

算法刷题day43

目录 引言已知信息一、公约数二、序列的第k个数三、越狱四、等差数列五、公约数六、质因数个数七、完全平方数八、阶乘分解 引言 今天复习的是快速幂的剩余问题、质数、约数的问题,发现其实不难,都是在基础的模板上进行变化,但是不好想,基本自己是想不出来的,所以这种问题还是要事先做过之后才会做,所以得多刷题了,加油! 已知信息 在int范围内约数个数最多的有1600个,在 1 0 9

20240403-算法复习打卡day43||● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

1049. 最后一块石头的重量 II  class Solution {public:int lastStoneWeightII(vector<int>& stones) {vector<int> dp(15001, 0);int sum = 0;for (int i = 0; i < stones.size(); i++) sum += stones[i];int target

Day43 动态规划 part05

Day43 动态规划 part05 1049.最后一块石头的重量II 我的思路: 提示说和划分两个和相等的子集差不多,猛然想到,这道题不就是划分子集,用sum - 和最大*2 代码就是划分和相同的子集的变形 解答: class Solution {public int lastStoneWeightII(int[] stones) {int sum = Arrays.stream(ston

代码随想录day43:动态规划part11,子序列问题

文章目录 day43:动态规划part11,子序列问题300.最长递增子序列674.最长连续递增序列718.最长重复子数组 day43:动态规划part11,子序列问题 300.最长递增子序列 class Solution {public int lengthOfLIS(int[] nums) {// dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度i

算法训练营day43(补),动态规划11

func max(a, b int) int {   if a > b {     return a   }   return b } //188. 买卖股票的最佳时机 IV func maxProfit4(k int, prices []int) int {   n := len(prices)   dp := make([][]int, n)   for i :

【Day43】代码随想录之动态规划0-1背包_1049. 最后一块石头的重量 II_494. 目标和_ 474.一和零

文章目录 动态规划理论基础动规五部曲:出现结果不正确: 1049. 最后一块石头的重量 II494. 目标和474.一和零 动态规划理论基础 动规五部曲: 确定dp数组 下标及dp[i] 的含义。递推公式:比如斐波那契数列 dp[i] = dp[i-1] + dp[i-2]。初始化dp数组。确定遍历顺序:从前到后or其他。打印。 出现结果不正确: 打印dp日志和自己想的

Day43- 动态规划part11

一、买卖股票的最佳时机  题目一:买卖股票的最佳时机 III  123. 买卖股票的最佳时机 III 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 /** @lc app=leetcode.cn id=123 lang=

代码随想录算法训练营29期|day43 任务以及具体任务

第九章 动态规划 part05  1049. 最后一块石头的重量 II class Solution {public int lastStoneWeightII(int[] stones) {int sum = 0;for (int i : stones) {sum += i;}int target = sum >> 1;//初始化dp数组int[] dp = new int[target