第四十八专题

Java重修笔记 第四十八天 TreeSet 类、TreeMap 类

TreeSet 类 1. TreeSet 底层是 TreeMap 2. 使用默认构造器创建的 TreeSet 对象,添加顺序和取出顺序不是有序的 3. 如果添加的是字符串或数字,它们默认会按照字母顺序或数值顺序进行排序 4. 可以在构造器中传入一个 Comparator 比较器来手动制定比较规则,之后传入的数据会根据改规则自动进行比较排序,如果根据比较器比较出的结果是相同的,即 com

算法工程师第四十八天(108.冗余连接 109.冗余连接II)

参考文献 代码随想录 一、冗余连接 题目描述 树可以看成是一个图(拥有 n 个节点和 n - 1 条边的连通无环无向图)。  现给定一个拥有 n 个节点(节点标号是从 1 到 n)和 n 条边的连通无向图,请找出一条可以删除的边,删除后图可以变成一棵树。 输入描述 第一行包含一个整数 N,表示图的节点个数和边的个数。 后续 N 行,每行包含两个整数 s 和 t,表示图中 s 和

代码随想录算法训练营第四十八天| km57. 爬楼梯、322. 零钱兑换、279.完全平方数

代码随想录算法训练营第四十八天 km57. 爬楼梯 题目链接:km57. 爬楼梯 确定dp数组以及下标的含义:j为背包的最大容量,dp[j]当容量为j有几种组合方式确定递推公式:dp[j]=dp[j]+dp[j-i],不放当前数字组成目标值的种类+必须放当前数字组成 目标值的种类(为了保证一定放这个值,就要把需要的容量腾出来)dp数组如何初始化:容量为0,有一种放法,dp[0] = 1;确

代码随想录算法训练营第四十八、四十九天|121. 买卖股票的最佳时机1-4

买卖股票的最佳时机I-IV dp[i][j]中dp数组的含义是在第i天时第j次操作股票的最大利润的状态,当j为0时,表示不对股票进行操作,当j为奇数时,表示买入股票,当j为偶数时,表示卖出股票。 dp[2][3]和dp[2][1]的本质其实是一样的,dp[2][3]表示在第2天买入、卖出、再买入,与dp[2][1]的买入是相同的(同一天一次买入和一次卖出相互抵消) 再考虑dp的递推公式。考虑

代码随想录算法训练营第四十八天|121. 买卖股票的最佳时机,122.买卖股票的最佳时机II

目录 121. 买卖股票的最佳时机思路代码 122.买卖股票的最佳时机II思路代码 121. 买卖股票的最佳时机 题目链接:121. 买卖股票的最佳时机 文档讲解:代码随想录 视频讲解:动态规划之 LeetCode:121.买卖股票的最佳时机1 思路 采用二维dp数组,dp[i][0]表示第i天交易完成后手里没有股票的最大利润,dp[i][1]表示第i天交易完后手里有

力扣经典150题第四十八题:合并区间

目录 题目描述和要求示例解释解题思路算法实现复杂度分析测试和验证总结和拓展参考资料 题目描述和要求 给定一个数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例解释 示例 1: 输入:intervals = [[

(学习日记)2024.04.20:UCOSIII第四十八节:各文件功能概览

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录,记录笔者认为最通俗、最有帮助的资料,并尽量总结几句话指明本质,以便于日后搜索起来更加容易。 标题的结构如下:“类型”:“知识点”——“简短的解释” 部分内容由于保密协议无法上传。 点击此处进入学

代码随想录算法训练营第四十八天| 198.打家劫舍,213.打家劫舍II,337.打家劫舍III

题目与题解 198.打家劫舍 题目链接:198.打家劫舍 代码随想录题解:​​​​​​​198.打家劫舍 视频讲解:动态规划,偷不偷这个房间呢?| LeetCode:198.打家劫舍_哔哩哔哩_bilibili 解题思路:         这道还比较容易,设置dp[i]为偷到第i家的收益,那么,如果要偷第i家,就不偷第i-1家,收益为dp[i-2]+nums[i-1];如果不偷第i家

【代码随想录算法训练营第四十八天 | LeetCode198.打家劫舍、213.打家劫舍II、337.打家劫舍III】

代码随想录算法训练营第四十八天 | LeetCode198.打家劫舍、213.打家劫舍II、337.打家劫舍III 一、198.打家劫舍 解题代码C++: class Solution {public:int rob(vector<int>& nums) {if (nums.size() == 0) return 0;if (nums.size() == 1) return nums[

Swift 周报 第四十八期

文章目录 前言新闻和社区苹果突然不造车了,雷军:非常震惊!分析师:马斯克或是最大赢家你会爱上的开发者活动 提案通过的提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组自主整理周报的第四十八期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。 Swift 周报在 GitHub 开源,欢迎提交 issue,投稿或推荐内

2017年12月28日 第四十八天次总结

while语句的使用 当while(1)时,条件为1,可以永远循环下去 int x=-9; while(++x){} 当++x=0时,即结果为false,循环结束 此程序段循环了8次 假如要设计一个简单计算器,数值和运算符之间必须有空格 <数值1> <运算符> <数值2> double a=1/10=0 因为两个整

代码随想录算法训练营第四十八天 | 121. 买卖股票的最佳时机

好忙这几天,偷个懒小做一点,后面有空补回来 题目链接:121. 买卖股票的最佳时机 - 力扣(LeetCode)   class Solution {public:int maxProfit(vector<int>& prices) {int minr=INT_MAX;int result=0;for(int i=0;i<prices.size();i++){minr=min(minr,pr

代码随想录算法训练营第四十八天| 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

文章目录 1.买卖股票的最佳时机2.买卖股票的最佳时机II 1.买卖股票的最佳时机 给定一个数组 prices,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。

代码随想录算法训练营第四十八天|583. 两个字符串的删除操作,72. 编辑距离

系列文章目录 代码随想录算法训练营第一天|数组理论基础,704. 二分查找,27. 移除元素 代码随想录算法训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 代码随想录算法训练营第三天|链表理论基础,203.移除链表元素,707.设计链表,206.反转链表 代码随想录算法训练营第四天|24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02

代码随想录算法训练营第四十八天| 198.打家劫舍、213.打家劫舍II、337.打家劫舍III

代码随想录算法训练营第四十八天| 198.打家劫舍、213.打家劫舍II、337.打家劫舍III 题目 198.打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之

代码随想录训练营第四十八天| ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

198.打家劫舍   视频讲解:动态规划,偷不偷这个房间呢?| LeetCode:198.打家劫舍_哔哩哔哩_bilibili 代码随想录  较为简单,关键是递推公式:dp[i] = max((dp[i-2]+nums[i]), dp[i-1]);只需考虑第i个需不需要偷,如果第i-1个没有偷dp[i-2]和dp[i-1]就应该是相同的,dp[i-2]+nums[i]一定大于

代码随想录训练营第四十八天| ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

198.打家劫舍   视频讲解:动态规划,偷不偷这个房间呢?| LeetCode:198.打家劫舍_哔哩哔哩_bilibili 代码随想录  较为简单,关键是递推公式:dp[i] = max((dp[i-2]+nums[i]), dp[i-1]);只需考虑第i个需不需要偷,如果第i-1个没有偷dp[i-2]和dp[i-1]就应该是相同的,dp[i-2]+nums[i]一定大于

算法训练第四十八天|198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III

198. 打家劫舍: 题目链接 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 : 输入:[1,2,3,1]输出:4解释:偷窃 1 号

C语言第四十八弹---多种方法模拟实现strlen函数

使用C语言用多种方法模拟实现strlen函数 方法一:逐个计数法 使用循环,遍历字符串,遇到’\0’截止。 #include <stdio.h>#include <assert.h>size_t my_strlen(const char* str){assert(str);int count = 0;while (*str != '\0'){count++;str++;}return c

代码随想录算法训练营第四十八天 _ 动态规划_198.打家劫舍、213.打家劫舍II、337.打家劫舍 III。

学习目标: 动态规划五部曲: ① 确定dp[i]的含义 ② 求递推公式 ③ dp数组如何初始化 ④ 确定遍历顺序 ⑤ 打印递归数组 ---- 调试 引用自代码随想录! 60天训练营打卡计划! 学习内容: 198.打家劫舍 动态规划五步曲: ① 确定dp[i]的含义 : 包含 下标i 偷得最大的金币数。 ② 求递推公式 : dp[i] = max(dp[i-2] + nums[i]

代码随想录算法训练营第四十八天【动态规划part09】 | 198.打家劫舍、213.打家劫舍II、337.打家劫舍III

198.打家劫舍 题目链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 求解思路: 当前房屋偷与不偷取决于前一个房屋是否被偷了 动规五部曲 确定dp数组及其下标含义:考虑下标i(包括i)以内的房屋,最多可以偷的金额为dp[i]确定递归公式:如果前一个屋子被抢了,那么现在这间屋子不能抢,即dp[i] = dp[i-1];如果前一间屋子没被抢,那么这件屋子可以抢,即dp

算法随想录算法训练营第四十八天| 739. 每日温度 496.下一个更大元素 I

739. 每日温度   题目:给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 思路:采用栈的方式解题,首先栈中存储的是数组元素的下标,我们遍历一边数组,当栈中的元素为空时,我们直接遍历数组的下标放入栈中;如果栈中的元素不

第四十八天:三方协议的内容

小Q:因为公司要求有三方协议才能入职,但是学校导员一直说特别重要不想给,所以查了一上午的资料来搞清楚点; 如下建议和介绍可能有偏差,望了解的各位指正,献给和我处于同阶段的人们! -----------------------------------简介三方---------------------------------------- 三方协议是《全国普通高等学校毕业生就业协议书》的简称,它是

“第四十八天” 计算机组成原理

数据结构学完了,不过也就是匆匆过了一遍,后面肯定还是要重来的。现在开始学机组了。 计算机发展历程:         计算机硬件唯一能识别的数据是二进制的 0/1,而在计算机中用低/高电平表示 0 / 1,也就是通过电信号传递数据,为什么只表示0/1,在之前c语言学习中有简单提及,因为越细分,电平越难区别,不知道机组会不会有更详细的解释。         计算机系统 = 软

代码随想录打卡第四十八天|动态规划章节 ● 322. 零钱兑换 ● 279.完全平方数

322. 零钱兑换 题目: 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。 题目链接: 322. 零钱兑换 解题思路: 要求求排列数 因为大的数值要在前面才能保证用的硬币数最小 所以先遍历背包 再遍历物品 代码如

NeHe OpenGL第四十八课:轨迹球

NeHe OpenGL第四十八课:轨迹球 轨迹球实现的鼠标旋转 使用鼠标旋转物体,很简单也有很多实现方法,这里我们教会你模拟轨迹球来实现它.   轨迹球控制 By Terence J. Grant (tjgrant@tatewake.com)  如果只用鼠标来控制你的模型是不是很酷?轨迹球可以帮你做到这一点,我将告诉你我的实现,你可以把它应用在你的工程里。 我的实现是基于Bretton Wa