part06专题

代码随想录算法训练营第五十六天 | 图论part06

108. 冗余连接 #include <iostream>#include <vector>using namespace std;void init(vector<int> &father) {for (int i = 0; i < father.size(); ++i) {father[i] = i;}}int find(vector<int>& father, int u) {if (

day56-graph theory-part06-8.26

tasks for today: 1. 108.冗余连接 2. 109.冗余连接II --------------------------------------------------------------------------------- 1. 108.冗余连接 in this practice, there is a rule needed to be identified:

代码随想录算法训练营第16天 | 第六章 二叉树 part06

代码随想录算法训练营第16天 | 第六章 二叉树 part06 530.二叉搜索树的最小绝对差501.二叉搜索树中的众数普通二叉树搜索二叉树 236. 二叉树的最近公共祖先 530.二叉搜索树的最小绝对差 需要领悟一下二叉树遍历上双指针操作,优先掌握递归 题目链接/文章讲解:link 视频讲解:link /*** Definition for a binary tree no

代码随想录训练营 Day38打卡 动态规划 part06 322. 零钱兑换 279. 完全平方数 139. 单词拆分

代码随想录训练营 Day38打卡 动态规划 part06 一、力扣322. 零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例: 输入:coins = [1, 2, 5], amount = 1

求职力扣刷题DAY20--二叉树 part06

20 654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 *最大二叉树* 。 思路: 递归就行了 注意: 一般递归中,可以不用传数组就不传数组

【随想录】Day44—第九章 动态规划part06

这里写目录标题 题目1: 完全背包1- 什么是完全背包问题?先遍历物品 和 先遍历背包的区别动规五部曲 2- 题解⭐ 完全背包——题解思路 题目2: 518. 零钱兑换 II1- 思路动规五部曲 2- 题解⭐零钱兑换 II ——题解思路 题目3: 377. 组合总和 Ⅳ1- 思路动规五部曲 2- 题解⭐组合总和 Ⅳ——题解思路 题目1: 完全背包 题目链接:52. 携

【随想录】Day37—第八章 贪心算法 part06

目录 题目1: 单调递增的数字1- 思路2- 题解⭐ 单调递增的数字——题解思路 题目2: 监控二叉树1- 思路2- 题解⭐ 监控二叉树——题解思路 题目1: 单调递增的数字 题目链接:738. 单调递增的数字 1- 思路 1. 转 String:将 int 类型的数转为 String 类型,之后通过2. 逆向遍历:从后往前遍历 String3. 处理思路:从

【随想录】Day30—第七章 回溯算法part06

目录 题目1: 重新安排行程1- 思路2- 题解⭐重新安排行程 ——题解思路 题目2: N皇后1- 思路2- 题解⭐N皇后 ——题解思路 题目3: 解数独(跳过) 题目1: 重新安排行程 题目链接:332. 重新安排行程 1- 思路 思路: 本题实际上是一个搜索的过程,即搜索满足输入条件 从起点到 一个终点可达的路径,同时路径要满足字典序小的排在前面。因此需要借

Day30代码随想录回溯part06:332.重新安排行程、451. N皇后、37. 解数独

332.重新安排行程(这道题没有自己完成) 回溯 使用字典```python class Solution:def findItinerary(self, tickets: List[List[str]]) -> List[str]:self.adj = {}# sort by the destination alphabetically# 根据航班每一站的重点字母顺序排序tickets.s

【随想录】Day20—第六章 二叉树 part06

目录 题目1: 654.最大二叉树1- 思路2- 题解⭐ 最大二叉树 ——题解思路 题目2: 合并二叉树1- 思路2- 题解⭐最大二叉树 ——题解思路 题目3: 700.二叉搜索树中的搜索1- 思路2- 题解⭐ 二叉搜索树中的搜索 ——题解思路 题目4: 98. 验证二叉搜索树1- 思路2- 题解⭐验证二叉搜索树 ——题解思路 题目1: 654.最大二叉树 题目链接:6

Day37|贪心算法part06:738.单调递增的数字、968. 监控二叉树、贪心总结

738. 单调递增的数字 总体思想就是从后往前遍历,比较第i位和第i+1位的大小,不符合顺序char[i]减1,i+1位填9,找到需要填9的最先位置,然后填9。 class Solution {public int monotoneIncreasingDigits(int n) {String s = String.valueOf(n);char[] chars = s.toCharArray

Day37 贪心 part06

Day37 贪心 part06 738.单调递增的数字 我的思路: 一开始的思路只从后向前遍历调整arraylist,100的案例没过,应该输出99,我输出90,顿时联想到分糖果问题,果断加了从前向后检查调整的遍历,没问题 解答: class Solution {public int monotoneIncreasingDigits(int n) {int res = 0;int coun

代码随想录算法训练营(JAVA)| 第六章 二叉树 part06

今日任务  力扣 654. 最大二叉树, 617. 合并二叉树,700. 二叉搜索树中的搜索,98. 验证二叉搜索树 题目 :654. 最大二叉树 思路 使用递归地方法遍历,每次找到当前数组中的最大值。很像 前序遍历 递归三部曲 ①确定递归函数的参数和返回值 参数传入的是存放元素的数组,返回该数组构造的二叉树的头结点,返回类型是指向节点的指针。 ②确定终

Leetcoder Day26| 回溯part06:总结+三道hard题

332.重新安排行程 给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。 提示: 如果存在多种有效的行程,请你按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相

Leetcoder Day17| 二叉树 part06

语言:Java/C++  654.最大二叉树 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构建最大二叉树,并且输出这个树的根节点。 示例 : 题目中说了输入的数组大小一定是大于等于1的,所以我们不用考虑小于1

Day37 贪心算法part06

单调递增的数字 class Solution:def monotoneIncreasingDigits(self, n: int) -> int:nl = [int(char) for char in str(n)]for i in range(len(nl)-1, 0, -1):if nl[i-1] > nl[i]:nl[i-1] -= 1nl[i] = 9for j in range(i,

Day38- 动态规划part06

一、完全背包 题目一:完全背包 52. 携带研究材料(第七期模拟笔试) 题目描述 小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的重量,并且具有不同的价值。 小明的行李箱所能承担的总重量为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每

代码随想录训练营第三十期|第二十天|二叉树part06|654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树

654. 最大二叉树 - 力扣(LeetCode) /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.

第九章 动态规划part06(● 完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ )

学习目标: ● 完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ 学习内容: 完全背包 完全背包 视频讲解:https://www.bilibili.com/video/BV1uK411o7c9 https://programmercarl.com/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98%E7%90%86%E8%AE%BA%E5%9F%

Day44 动态规划part06 完全背包理论基础 518. 零钱兑换 II 377. 组合总和 Ⅳ

动态规划part06 完全背包理论基础 518. 零钱兑换 II 377. 组合总和 Ⅳ 完全背包理论基础 acm可运行代码(先遍历物品再遍历背包,一维dp) #include<iostream>#include<vector>using namespace std;int Solution(vector<int>& weights,vector<int>& values,int V){

Day32- 贪心算法part06

一、单调递增的数字 题目一:738. 单调递增的数字  738. 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。 给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。 从高位到低位遍历整数 n 的每一位数字,当发现某一位数字大于其后一位数字时,将这一位数字减一,并将所有更低位的数字设置为 9,以确

Day26- 回溯算法part06

一、重新安排行程 题目一:332. 重新安排行程  332. 重新安排行程​​​​​​​ 给你一份航线列表 tickets ,其中 tickets[i] = [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。如果存在多种有效的行程,请你按字典排序返回最小的行程

Day30 回溯算法part06 332. 重新安排行程 51. N 皇后 37. 解数独

回溯算法part06 332. 重新安排行程 51. N 皇后 37. 解数独 332. 重新安排行程 下面方法在leetcode用例中会有一处超时 class Solution {private:vector<string> path={"JFK"};vector<string> res;void backtracking(vector<vector<string>>& tickets,

代码随想录算法训练44 | 动态规划part06

力扣上没有纯粹的完全背包的题目,所以大家看本篇了解一下 完全背包的理论  后面的两道题目,都是完全背包的应用,做做感受一下   完全背包  视频讲解:带你学透完全背包问题! 和 01背包有什么差别?遍历顺序上有什么讲究?_哔哩哔哩_bilibili https://programmercarl.com/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98%E7%90

代码随想录算法训练营第四十四天【动态规划part06】 | 完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ

完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。 题目链接: 题目页面 求解思路: 完全背包和01背包的唯一不同就是在遍历顺序上;完全背包先遍历背包或是物品都可以,并且需要正序遍历 代码: #include <iostream

代码随想录算法训练营第三十五天丨 贪心算法part06

738.单调递增的数字 思路 暴力解法 题意很简单,那么首先想的就是暴力解法了【超时】。 贪心算法 题目要求小于等于N的最大单调递增的整数,那么拿一个两位的数字来举例。 例如:98,一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首先想让strNum[i - 1]--,然后strNum[i]给为9,这样这个整数就是89,即小于98的最大的单调递增整数。