- 博客(30)
- 收藏
- 关注
原创 力扣242.有效的字母异位词
数组其实就是一个简单哈希表,定义一个数组,来记录字符串s里字符出现的次数。把字符映射到哈希表的索引下标。,编写一个函数来判断。时间复杂度:O(n)
2024-10-14 14:19:15
569
原创 力扣142.环形链表II
使用快慢指针,快指针每次走两步,慢指针每次走一步,如果快慢指针相遇,说明有环。空间复杂度:O(n) 链表中的每个节点都保存在哈希集合当中。快慢指针相遇节点和链表头结点指针同步前进,相遇点为环的入口。2.该节点在哈希集合中 -> 说明此处成环 -> 返回该节点。时间复杂度:O(n) n为链表节点个数。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。,返回链表开始入环的第一个节点。来表示链表尾连接到链表中的位置(,则在该链表中没有环。
2024-10-13 16:18:07
2158
原创 力扣面试题02.07.链表相交
从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。时间复杂度: O(m+n) 遍历链表A:O(m),遍历链表B:O(n)同步指针:O(t)从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。如果当前节点在哈希集合中,则后面的节点都在哈希集合中,返回该节点。相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。
2024-10-11 20:34:54
1776
原创 力扣19.删除链表的倒数第N个节点
如果要删除倒数第n个节点,让fast先移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。你能尝试使用一趟扫描实现吗?
2024-10-10 09:42:31
410
原创 力扣24. 两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。重点:虚拟头结点、临时结点。链表中节点的数目在范围。
2024-10-09 13:15:56
824
原创 力扣203.移除链表元素
在处理链表的最后一个节点时可能会出现问题。时,循环会停止,但是如果最后一个节点的值等于。,请你删除链表中所有满足。要删除的是curr.next。要删除的是curr.next。,这个节点将不会被删除。给你一个链表的头节点。
2024-10-06 19:46:49
626
原创 区间和(前缀和)
第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间下标:a,b (b > = a),直至文件结束。的思想是重复利用计算过的子数组之和,从而降低区间查询需要累加计算的次数。给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。表示 数组下标 0 到 i 的 num[i] 累加 之和。数据范围:0 < n <= 100000。输出每个指定区间内元素的总和。
2024-10-06 09:24:43
390
原创 力扣209.长度最小的子数组
给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度如果不存在符合条件的子数组,返回0。2子数组 [4,3] 是该条件下的长度最小的子数组。10。
2024-10-05 09:45:40
489
原创 力扣977.有序数组的平方
给你一个按排序的整数数组nums,返回组成的新数组,要求也按排序。平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]已按排序。
2024-10-04 21:17:59
670
原创 IDEA创建Springboot项目
Package name:包名,自动生成,删除后半部分,保留com.itheima。运行启动类,在浏览器中输入localhost:8080/hello。3.勾选web开发相关依赖Spring Web->Create。Artifact:模块名。Type选择Maven。
2024-10-03 14:07:34
261
原创 IDEA创建、导入、删除maven项目
一般来说点击OK,成功,但是此图无法点击OK,而左侧出现了要导入的项目,但是无法运行。右键点击所导入项目的pom文件->Add as Maveb Project。3.点击右侧maven面板->点击“+”号,导入项目的pom文件。Modules->"+"号->Import Module。5.选择字节码版本->Apply->OK。选择要导入项目的pom文件->OK。4.选择JRE版本->Apply。ArtifactId:模块名。GroupId:域名反写。(设置Location)或者连包带类一起创建。
2024-10-03 10:26:34
2299
原创 力扣367.有效的完全平方数(二分查找)
返回 false ,因为 3.742 * 3.742 = 14 但 3.742 不是一个整数。是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。返回 true ,因为 4 * 4 = 16 且 4 是一个整数。不能使用任何内置的库函数,如。是一个完全平方数,则返回。
2024-10-01 13:33:36
394
原创 力扣69.x的平方根(二分查找)
题目链接:69. x 的平方根 - 力扣(LeetCode)给你一个非负整数x,计算并返回x的算术平方根。由于返回类型是整数,结果只保留整数部分,小数部分将被舍去 。注意:不允许使用任何内置指数函数和算符,例如pow(x, 0.5)或者x ** 0.5。示例 1:输入:x = 4输出:2示例 2:输入:x = 8输出:2解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。提示: 0 <= x <=
2024-10-01 13:04:08
409
原创 力扣34.在排序数组中查找元素的第一个和最后一个位置(二分查找)
输入:nums=[1,2,3,3,3,3,4] , target=3。请你找出给定目标值在数组中的开始位置和结束位置。定义两个方法,用二分查找分别查找左边界和右边界。给你一个按照非递减顺序排列的整数数组。如果数组中不存在目标值。
2024-10-01 10:32:57
503
原创 力扣35.搜索插入位置(二分查找)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。时间复杂度为O(logn)请必须使用时间复杂度为。时间复杂度为O(n)
2024-09-30 22:26:42
274
原创 力扣704. 二分查找
因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大家看到题目描述满足如上条件的时候,可要想一想是不是可以用。9 出现在 nums中并且下标为 4。,如果目标值存在返回下标,否则返回。2 不存在nums中因此返回 -1。个元素有序的(升序)整型数组。中的所有元素是不重复的。
2024-09-30 21:16:14
480
原创 0-1背包问题
dp [ i ] [ j ] 的含义是:当有 i 件物品,背包容量为 j 时,所能得到的最大价值。当第i件物品的体积w[i]小于背包容量j时,装得下,有两种方案:装或不装。当第i件物品的体积w[i]大于背包容量j时,装不下,dp[i][j]=dp[i-1][j]第i件物品的价值是v,需要占用的容量是w。输出为根据输入条件能装入的最大价值,比如对于上面输入描述中的数据,应输出11。第4行为N个整数,分别代表第1到N个物品需要占用的容量w,以空格隔开。物品数为0或者背包容量为0时,dp[i][j]=0。
2024-09-24 11:07:29
561
原创 力扣72. 编辑距离(动态规划)
dp[i][j] 的含义是 : 当字符串word1长度为 i,字符串word2长度为 j时,将word1转化为word2。在word1末尾插入一个与word2[j]相等的字符,dp[i][j]=dp[i][j-1]+1。把word1[i]替换成word2[j],dp[i][i]=dp[i-1][j-1]+1。此时不需要进行任何操作,dp[i][j]=dp[i-1][j-1]把word1[i]删除,dp[i][j]=dp[i-1][j]+1。(需要比较word1的前i-1个字符和word2的前j-1个字符)
2024-09-23 22:06:37
926
原创 力扣64. 最小路径和(动态规划)
请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。因为路径 1→3→1→1→1 的总和最小。每次只能向下或者向右移动一步。给定一个包含非负整数的。
2024-09-23 20:30:04
323
原创 力扣62. 不同路径(动态规划)
dp[i][j]的含义是:机器人从左上角走到第i行第j列这个位置,一共有dp[i][j]种路径。若i=0,即第一行,机器人只能向右走,只有一条路径,dp[0][0,1,2,...m-1]=1;若j=0,即第一列,机器人只能向下走,只有一条路径,dp[0,1,2,...n-1][0]=1。2.从(i,,j-1)这个位置向右走,有dp[i][j-1]条不同的路径。1.从(i-1,j)这个位置向下走,有dp[i-1][j]条不同的路径。dp[m-1][n-1]即为题目所求。dp[i][j]中,
2024-09-23 20:04:31
516
原创 IDEA创建Maven项目
2.输入项目名Name、地址Location(自动生成);Archetype选择带quickstart后缀的。Modules->maven-project01->点击java->Apply->OK。在Modules模块找到对应路径,右键点击java,点击New Directory。右键点击resources,点击Resources出现。3.右键点击java->New->Java Class。输入resources,点击OK。4.输出Hello World。
2024-09-16 19:01:32
2513
原创 矩阵连乘(动态规划)超详细
由不同加括号顺序所带来的矩阵乘积的代价不同,考虑三个矩阵的链(A_1,A_2,A_3)的问题。如果按(A1(A2A3))(A1(A2A3))的次序来计算,则为求1005010050的矩阵乘积A2A3A2A3要做100∗5∗50=25000100∗5∗50=25000次标量乘法运算,再乘上A1A1还要10∗100∗50=5000010∗100∗50=50000次标量乘法,总共7500075000次标量乘法运算。,An},其中,Ai与Ai+1Ai与Ai+1是可乘的,(i=1,2,…
2024-09-15 12:30:57
3769
2
原创 力扣121. 买卖股票的最佳时机
在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。买入这只股票,并选择在。
2024-09-13 09:30:03
329
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅