自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 【每日一题】70.爬楼梯--Python

第二种方法将走到每一层楼梯的方法数都保存进一个数组,但是求走到第n层楼的方法数,只需要保存n-1和n-2层的方法数即可。用滚动数组法,每次只保存所求层数的前两层的结果即可。在法2的基础上节省了空间。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?需要 n 阶你才能到达楼顶。***解释:***有两种方法可以爬到楼顶。***解释:***有三种方法可以爬到楼顶。记忆化更新dp数组即可。

2024-03-26 14:59:46 185

原创 【每日一题】518.零钱兑换2--Python

给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0。输入:amount = 5, coins = [1, 2, 5]输入:amount = 10, coins = [10]输入:amount = 3, coins = [2]解释:只用面额 2 的硬币不能凑成总金额 3。题目数据保证结果符合 32 位带符号整数。coins 中的所有值 互不相同。假设每一种面额的硬币有无限个。

2024-03-25 13:22:57 127

原创 【每日一题】322.零钱兑换

计算并返回可以凑成总金额所需的 最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。输入:coins = [1, 2, 5], amount = 11。输入:coins = [2], amount = 3。输入:coins = [1], amount = 0。你可以认为每种硬币的数量是无限的。解释:11 = 5 + 5 + 1。(1)首先想到递归,超时了。

2024-03-24 14:31:58 200 1

原创 【每日一题】2549.统计桌面上的不同数字

若n=1,直接返回1.若n>1,则n-1,n-2,n-3,,,3,2都会到桌面上,所以返回n-1即可。对于出现在桌面上的每个数字 x ,找出符合 1 <= i <= n 且满足 x % i == 1 的所有数字 i。由于每次放在桌面上的数一定小于n,创建一个字典,存放每一个数字出现在桌面上的次数,然后暴力出来。第二天,2 和 4 也出现在桌面上,因为 5 % 2 == 1 且 5 % 4 == 1。给你一个正整数 n ,开始时,它放在桌面上。因为 3 % 2 == 1 ,2 也出现在桌面上。

2024-03-23 13:17:29 261

原创 【每日一题】2.两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]你可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]请你将两个数相加,并以相同形式返回一个表示和的链表。输入:l1 = [0], l2 = [0]输出:[8,9,9,9,0,0,0,1]题目数据保证列表表示的数字不含前导零。输出:[7,0,8]

2024-03-22 16:51:36 252 1

原创 【每日一题】2671.频率跟踪器

bool hasFrequency(int frequency): 如果数据结构中存在出现 frequency 次的数字,则返回 true,否则返回 false。void deleteOne(int number):从数据结构中删除一个 number。FrequencyTracker():使用一个空数组初始化 FrequencyTracker 对象。// 数据结构现在包含 [3, 3]void add(int number):添加一个 number 到数据结构中。// 数据结构现在包含 [3]

2024-03-21 13:40:30 411

原创 【每日一题】1969.数组元素的最小非零乘积--Python

你有一个下标从 1 开始的数组 nums ,这个数组包含范围 [1, 2p - 1] 内所有整数的二进制形式(两端都 包含)。比方说,如果 x = 1101 且 y = 0011 ,交换右边数起第 2 位后,我们得到 x = 1111 和 y = 0001。我们直到,给定一串数字,要求其中一个数加1,一个数减1使得最终这些数的乘积最小,那么令最小的数减1,最大的数加1即可。(4)首先考虑 第一个元素1,将1减去1变为0,此时从右向左依次考虑最大的元素,由于 最右边的2。-1每一位均为 1无法再增加;

2024-03-20 15:02:06 279 1

原创 【每日一题】1793.好子数组的最大分数--Python

枚举法,首先令i=nums[k]作为当前好子数组的最小值,在left和right不超出边界的情况下:若k左边的数>=nums[k],则left-1,若k右边的数>=nums[k],则right+1。解释:最优子数组的左右端点下标是 (1, 5) ,分数为 min(4,3,7,4,5) * (5-1+1) = 3 * 5 = 15。解释:最优子数组的左右端点下标是 (0, 4) ,分数为 min(5,5,4,5,4) * (4-0+1) = 4 * 5 = 20。(2)现在想想咋降低时间复杂度呢?

2024-03-19 16:01:54 166

原创 【每日一题】303. 区域和检索 - 数组不可变--Python

int sumRange(int i, int j) 返回数组 nums 中索引 left 和 right 之间的元素的 总和 ,包含 left 和 right 两点(也就是 nums[left] + nums[left + 1] + …+ nums[right] )(2)还有一种时间复杂度为O(1)的解法,就是在构造函数中先对列表进行预处理:构造一个新的列表List,List[n]存放数组中前n个元素的和。(1)首先,我想到的就是暴力解法,直接遍历列表中left到right相加即可,时间复杂度为O(n)

2024-03-18 14:21:14 328

原创 【每日一题】310.最小高度树--Python

因此我们可以用广度优先搜索遍历树上的所有节点,找到树中的最长路径,然后最小高度树的根节点一定在这条路径上。(1)题目给出n个节点,以及一个包含所有边关系的列表edges,让我们选择任意一个节点作为根,求所有使树高度最小的根节点列表。输入:n = 6, edges = [[3,0],[3,1],[3,2],[3,4],[5,4]]解释:如图所示,当根是标签为 1 的节点时,树的高度是 1 ,这是唯一的最小高度树。输入:n = 4, edges = [[1,0],[1,2],[1,3]]

2024-03-17 13:05:20 315 1

原创 【每日一题】2684.矩阵中移动的最大次数--Python

从单元格 (row, col) 可以移动到 (row - 1, col + 1)、(row, col + 1) 和 (row + 1, col + 1) 三个单元格中任一满足值 严格 大于当前单元格的单元格。输入:grid = [[2,4,3,5],[5,4,9,3],[3,4,2,11],[10,9,13,15]]----------------------其他解法正在学习中-----------------------输入:grid = [[3,2,4],[2,1,9],[1,1,7]]

2024-03-16 16:26:55 352

原创 【每日一题】2789.合并后数组中的最大元素

选中一个同时满足 0 <= i < nums.length - 1 和 nums[i] <= nums[i + 1] 的整数 i。将元素 nums[i + 1] 替换为 nums[i] + nums[i + 1] ,并从数组中删除元素 nums[i]。给定数组中的元素如果前一个小于等于后一个,可以将他们相加替换掉后一个,并且删除前一个。这个操作可以执行任意次,让最终数组中的最大元素尽可能的大。,使后面的元素越来越大,前面的元素就尽可能多的可以合并了。返回你可以从最终数组中获得的 最大 元素的值。

2024-03-14 14:52:47 316

原创 【每日一题】最大二进制奇数-Python

给你一个 二进制 字符串 s ,其中至少包含一个 ‘1’ 。你必须按某种方式 重新排列 字符串中的位,使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。以字符串形式,表示并返回可以由给定组合生成的最大二进制奇数。注意 返回的结果字符串 可以含前导零。示例 1:输入:s = “010”输出:“001”解释:因为字符串 s 中仅有一个 ‘1’ ,其必须出现在最后一位上。所以答案是 “001” 。示例 2:输入:s = “0101”输出:“1001”解释:其中一个 ‘1’ 必须出现在最后

2024-03-13 20:38:35 858

原创 蓝桥杯 荒岛探测,求解

问题描述科学家小蓝来到了一个荒岛,准备对这个荒岛进行探测考察。小蓝使用了一个超声定位设备来对自己进行定位。为了使用这个设备,小蓝需要在不同的点分别安装一个固定的发射器和一个固定的接收器。小蓝手中还有一个移动设备。定位设备需要从发射器发射一个信号到移动设备,移动设备收到后马上转发,最后由接收器接收,根据这些设备之间传递的时间差就能计算出移动设备距离发射器和接收器的两个距离,从而实现定位。小蓝在两个位置已经安装了发射器和接收器,其中发射器安装在坐标(xa,ya) ,接收器安装在坐标 (xb,yb)。小蓝的发射

2021-03-20 11:30:24 2757 15

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除