- 博客(149)
- 资源 (33)
- 问答 (4)
- 收藏
- 关注
原创 leetcode热题100.打家劫舍(动态规划进阶)
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:示例 2:这是动态规划中的典型的“选与不选”的问题我们先讨论一般的情况,对于小偷而言,在偷取的过程中,每面临一个房子,小偷都有选和不选两种选择。对于小偷而言,此时的最优解是从两种情况中选一种,由这样的情况我们定
2024-04-20 09:49:21 585
原创 leetcode热题100.杨辉三角(动态规划入门)
示例 1:示例 2:我们可以根据题意,很轻松的发现这样一个规律:对于第i行,这一行的第一个数和最后一个数都是1,对于这中间的数,设这个数为 row[i][j] ,那么他的值其实可以用下面的公式推导出来:row[i][j]=row[i−1][j]+row[i−1][j−1]row[i][j] = row[i-1][j] + row[i-1][j-1]row[i][j]=row[i−1][j]+row[i−1][j−1]如果单纯的看金字塔的话可能不是很直观,我这里给大家画一个图,更加直观一点根据这样的关系,
2024-04-20 08:45:00 1066
原创 校园猫咪小程序
今天来给大家分享下这个项目,希望大家在学习后也能给自己的学校开发一个猫猫小程序,或者将这个小程序用作毕设或者课设之类的,也可以作为前端找工作的项目。
2024-04-14 23:59:22 277
原创 leetcode热题100.爬楼梯(从二进制到快速幂)
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:示例 2:在上一讲中,我们讲解了递归和动态规划的求解思路,但是我们发现这两种方案的时间复杂度都为 o(n)o(n)o(n),我们试图找一种更加优秀的时间复杂度的解法这里我们就要介绍快速幂的概念了我们先将n表现为2进制,例如3133^{13}313 = 311013^{1101}31101 = 383^838 * 343^434 * 333因为n有 ⌊log2n⌋\lfloor log
2024-04-13 18:33:00 1271
原创 leetcode热题100.爬楼梯(从递归到动态规划)
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:示例 2:假设 n=8,我们可以分情况讨论:综上所述,设f(n)为到达第层的方法数,则f(8)=f(7)+f(6)f(8) = f(7) + f(6)f(8)=f(7)+f(6)我们推广一下得到这样的公式:f(n)=f(n−1)+f(n−2)f(n) = f(n-1) + f(n-2)f(n)=f(n−1)+f(n−2)递归的出口为 f(1) = 1,f(0) = 0我们先用
2024-04-13 17:52:01 995
原创 leetcode热题100.划分字母区间
给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。示例 1:示例 2:由于同一个字母只能出现在同一个片段,显然一个字母出现的最后一个位置也在这个片段中;题目中要求我们尽可能多的划分片段,所以每当我们确定了这个位置可以包含此位置之前的所有字母,那么我们一定要进行划分,这样划分数量才能最大例如下图,在a后面切一刀才能保证最大分割具体做法:我们先计算每个
2024-04-09 15:15:00 538
原创 leetcode399.除法求值
当起点等于终点的时候,我们判断一下他们在不在图中,防止有两个不被输入的字符相除,如果他们在图中,记录此时的curVal到res中去,然后终止函数。创建一个hashMap 的数据结构,用来存储 a和b的关系以及他们的除法结果,同时记录b / a 的除法结果 1 / v。在递归的过程中,我们要讲curVal 更新为 curVal*nei.div 这是因为nei.str为我们搜索的尾节点,他当前的值curVal是他过去经历的边的乘积。
2024-04-09 08:15:00 795
原创 leetcode热题100.盛最多水的容器
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例 1:示例 2:我们很容易想到计算两个柱子的水容量的公式:ans=min(l,r)∗(r−l)ans = min(l,r)*(r-l)ans=min(l,r)∗(r−l)一种朴素的解法是两层循环,计算每两根柱子之间的容量,保留最大值。这种方法肯定
2024-04-08 09:15:00 938
原创 leetcode热题100.接雨水
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:示例 2:提示:我们来看示例1中的数据, [0,1,0,2,1,0,1,3,2,1,2,1],如下图我们考虑一种简单的思路,就是一个柱子一个柱子算,比如,对于位置2,即0而言,这个柱子中可以存的水量是 max(l,r)−height[2]max(l,r)-height[2]max(l,r)−height[2] ,其中 l,r代表着这个柱子左边最大的那个柱子的高度和右边最大的柱子的高度,我们不妨先
2024-04-08 08:30:00 888
原创 leetcode热题100.跳跃游戏2
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:$0
2024-04-06 09:52:35 1040
原创 基于opencv的猫脸识别模型
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。
2024-04-04 22:34:47 2858 2
原创 leetcode热题100.跳跃游戏
给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。示例 1:示例 2:提示:1
2024-04-03 09:58:43 499
原创 leetcode热题100.数组中的第k大的元素
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:示例 2:我们先把题目做一下转化,求解数组第k大的数,其实就是求解第n-k小的数,根据这一性质,我们可以在函数中直接传入n-k首先,我们可以利用分支的思想解决这个问题,具体思路类似快速排序我们在一次递归中选定最左边的元素,确定他在数组中的位置,如果 j 的位置小等于n-k,说明n-k在j的左
2024-04-03 09:51:30 1287
原创 leetcode热题100.买股票的最佳时机
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:示例 2:提示:1
2024-04-02 13:50:34 858
原创 leetcode热题100.数据流的中位数
中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。实现 MedianFinder 类:MedianFinder() 初始化 MedianFinder 对象。void addNum(int num) 将数据流中的整数 num 添加到数据结构中。double findMedian() 返回到目前为止所有元素的中位数。与实际答案相差 10-5 以内的答案将被接受。示例 1:输入输出解释提示:我们维护两个堆,一个最大堆,一个最小堆,最大堆维护小于等于中位数的值,最小堆维
2024-04-02 09:30:00 1094
原创 leetcode热题100.前k个高频元素
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:示例 2:提示:进阶:你所设计算法的时间复杂度 必须 优于 O(n log n) ,其中 n 是数组大小。
2024-04-01 15:00:00 969
原创 leeetcode热题100.每日温度
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。示例 1:示例 2:示例 3:先来看顺着遍历,我们从左到右遍历所有字符串,将他们加入到栈中;我们要明白一点,就是当前栈顶元素是已经遍历过的的最近的元素,我们将它的值和此时遍历到的值比较,如果说当前栈顶元素小于现在的遍历的元素,对于当前栈顶元素而言,就找到了离他最近的点的元素,我们更新对应的
2024-03-29 09:00:00 582
原创 leetcode热题100.柱状图中最大的矩形
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。示例 1:示例 2:对于一根柱子x,其高为h.假如我们知道了他左边的第一根小于他的柱子的位置l和邮编第一个小于的高度的柱子r,那么我们很容易求得他的最大面积为:s=(r−l−1)∗hs = (r-l-1) * hs=(r−l−1)∗h根据这一性质,我们采用单调栈的方法,在栈中保留第一个比当前元素小的元素的索引,所有大于当前元素的索引都将被弹出;如果栈不为空,说明存在这样一
2024-03-29 08:15:00 1693
原创 leetcode热题100.最小栈
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack 类:示例 1:时间复杂度:空间复杂度:
2024-03-28 09:00:00 739 1
原创 leetcode热题100.字符串解码
给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:示例 2:示例 3:示例 4:提示:使用栈的思想,遇到 [[[ 时用栈来保存当前构造的字符串res和此
2024-03-28 09:00:00 959
原创 leetcode热题100.寻找两个正序数组中的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。示例 1:示例 2:定义numus1为较小数组,nums2为较大数组假设有一条分界线在两个数组nums1和nums2中这个分界线满足两个条件:性质1:根据这一性质,我们定义分界线左边的元素个数,可以只二分小的那个nums就可以确定分割线的位置性质2:根据这一性质,我们可以写出二分搜索的判断条件,即左上>右下或者左下>右上
2024-03-27 16:00:00 882
原创 leetcode热题100.有效括号
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。示例 1:示例 2:示例 3:复杂度时间复杂度:空间复杂度:
2024-03-27 16:00:00 453
原创 从转正失败,到大厂offer——我的经验分享
就是在学校的一些经历,还有在校外的一些经历,比如如果你有社团的经历,可以写下如何参与社团事务,如果有加入球队,写写训练,管理相关的内容,但是个人建议如果是技术岗的话不要写太多,毕竟我们这群写代码的主业还是要写代码啊,但是如果是和计算机相关的内容就比较值得写,比如博主,写了自己做csdn博主的事情,那时候粉丝还没现在这么多,有些面试官也会问,还算是个不错的经历吧。
2024-03-23 21:50:28 918
原创 leetcode热题100.移动零
示例 1:示例 2:根据题意,我们可以直观的想到一种解法,即将所有非零的数字保存到一个数组中,然后我们将nums的前几位的值变为这个数组,后几位赋值0即可但是题目要求所有我们必须在不复制数组的情况下原地对数组进行操作,要求空间复杂度为O(1)O(1)O(1),我们可以采用双指针的思路标记两个指针为left,right,分别意味着0开始的点的下标和非0数组开始的下标一开始,如果当前数字不为0,我们就同时移动两个指针,否则,我们只移动右指针;当我们的右指针right的值再次遇到非0数字的时候,此时lef
2024-03-23 08:00:00 1027
原创 leetcode热题100.最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:示例2:但是题目要求我们要时间复杂度 O(n)O(n)O(n),我们考虑另一种解法,对于去重的元素x,如果x-1不在去重后的集合中,说明他是一个增长链的起点,我们只需要计算这个链条的长度即可,最终保存最长的那一条上升链,那就是我们要找的答案。时间复杂度:空间复杂度:
2024-03-21 23:58:25 1019
原创 应届生/实习生租房经验帖
大家实习租房之前可以多去网上了解公司附近的房租情况,甚至可以联系下中介,等过去了再看房子,观察下当地租房市场,就是这些~~最后祝大家租到舒适,温馨的小窝。
2024-03-21 18:00:02 328 4
原创 差分数组实战——滴滴春招笔试第一题
作者:晓宜🌈🌈🌈个人简介:互联网大厂Java准入职,阿里云专家博主,csdn后端优质创作者,算法爱好者🌙🌙🌙上周末参与了滴滴的春招笔试,第一题是差分数组的改版题,但是测试数据不强,听同学说暴力遍历也能过,whatever,这里分享下两种解法,顺便讲解下差分数组❤️❤️❤️你的关注是我前进的动力😊。
2024-03-18 18:05:45 1025 1
原创 哔哩哔哩秋招Java二面
作者:晓宜个人简介:互联网大厂Java准入职,阿里云专家博主,csdn后端优质创作者,算法爱好者一面过后面试官叫我别走,然后就直接二面,二面比较简短,记录一下,希望可以帮助到你。
2024-03-16 16:42:18 7551 17
原创 哔哩哔哩后端Java一面
作者:晓宜个人简介:互联网大厂Java准入职,阿里云专家博主,csdn后端优质创作者,算法爱好者最近各大公司的春招和实习招聘都开始了,这里分享下去年面试B站的的一些问题,希望对大家有所帮助!后续会跟新二面的一些问题,感兴趣的同学可以关注我的博客。
2024-03-16 14:17:59 1025
原创 腾讯春招后端一面(算法篇)
哈喽大家好,前段时间在小红书和牛客上发了面试的经验贴,很多同学留言问算法的具体解法,今天就详细写个帖子回复大家。因为csdn是写的比较详细,所以更新比较慢,大家见谅~~就题目而言,前两题是平时刷题常见的,第三题没有见过,需要认真思考下最后,希望找工作的同学都能收获心仪的offer。
2024-03-15 14:06:46 1354
原创 腾讯春招后端一面(八股篇)
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
2024-03-15 08:30:00 1828
原创 leetcode热题100. 字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。示例 1:示例 2:示例 3:提示:1
2024-02-17 22:05:31 1134
原创 HJ108 求最小公倍数
42,所以这个最大公约数也是42与105的最大公约数(42=21×2)。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至余数为零。这时,所剩下的还没有变成零的数就是两数的最大公约数。正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。注意本题要求是最大公倍数,根据数学定理,欲求252和105的最大公约数;输出A和B的最小公倍数。输入两个正整数A和B。
2024-02-17 16:00:00 1054
原创 牛客笔试-变换次数
直接模拟题目中的运算即可,开启一个循环,不断计算当前数字的每个位数的和,将最终结果赋值回num。变换的规则是:将这个数变成 所有位数上的数字的乘积。比如285经过一次变换后转化成2。牛牛想对一个数做若干次变换,直到这个数只剩下一位数字。小于等于2,000,000,000。问题是,要做多少次变换,使得这个数变成个位数。循环结束的标志是num为个位数。输出一个整数,表示变换次数。
2024-02-16 08:30:00 428
原创 leetcode121. 买卖股票的最佳时机
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6,
2024-02-02 21:17:01 506
原创 leetcode热题100.二叉树中的最大路径和
二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。示例 1:输入:root = [1,2,3]输出:6解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6示例 2:输入:root = [-10,9,20,null,null,15,7]输出:42解释:最优路径是
2024-02-02 17:10:40 1116
知识库系统(牛客论坛改进版)
2024-03-01
华为数据库GaussDB实训报告
2024-03-01
vue框架整合百度local-kitymind脑图
2023-07-30
基于安卓的推箱子小游戏
2023-06-23
基于spring的前后端一体化积分商城系统
2023-06-17
停车场管理系统.zip
2023-01-28
合工大计组实验cpu设计报告.zip
2022-06-30
2022美国大学生数学建模比赛c题题解-基于灰色预测模型和层次分析法的比特币和黄金交易策略生成模型
2022-02-23
qt项目记账本.zip
2021-12-06
合工大Java实验报告源代码
2021-11-01
ccf运行python代码时报错,未初始化警告
2022-06-11
小蓝的01字符串,搞不懂第13行的判断条件中g为什么要+1
2022-05-19
在python中用for创建二维列表和用乘法创建有什么区别?
2022-03-21
c++程序运行错误,进入dfs函数后直接退出,后面没有输出
2021-11-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人