- 博客(188)
- 收藏
- 关注
原创 每日一题,力扣leetcode Hot100之206反转链表
只需要循环遍历,并且借一个temp便可以完成反转。原来的链表是1-2-3-4-5-null。反转后是5-4-3-2-1-null。
2024-09-09 22:33:27
445
原创 每日一题,力扣leetcode Hot100之238.除自身以外数组的乘积
对于L来说,由于表达的是位置i左边的数的乘积,那么L[0]=1,因为第一个数字左边没数那么为了不影响乘积初始值就设置为1,那么L[1]=L[0]*nums[0],那么L[i]=L[i-1]*nums[i-1]因为去掉位置i的乘积 就等于上个位置i-1去掉位置的乘积*其本身。考虑到不能用除法,如果我们要计算输出结果位置i的值,我们就要获取这个位置左边的乘积和右边的乘积,那么我新设立两个数组L和R。对于R来说,同理,只不过是逆序,注意界定循环的范围。
2024-09-07 20:27:31
504
原创 每日一题,力扣leetcode Hot100之198.打家劫舍
这一道题乍一看可以双层循环暴力解,但是仔细一想有可能最大利益并不是一家隔着一家偷,我可以间隔很多家偷,所以 这个题的思路还是有点像爬楼梯,用动态规划解。1.第i家能拿,那么dp[i]=nums[i]+dp[i-2],能拿说明上一家没拿过,那么我们就要这家的值加上dp[i-2],你也甭管上上家拿过没。2.dp[1]=max(nums[0],nums[1])有两家选一家多的。2.第i家不能拿,说明上家拿过了,那么dp[i]=dp[i-1]1.dp[0]=nums[0]只有一家。dp[i]应该是什么。
2024-09-06 19:32:20
353
原创 每日一题,力扣leetcode Hot100之118.杨辉三角
解题思路就是动态规划,确定好边界值和要动态传递的值。动态传递值就是除了边界值每一个都等于他的左上加右上。边界值就是每一排的第一个和最后一个肯定是1。
2024-09-05 16:16:08
401
原创 每日一题,力扣leetcode Hot100之189.轮转数组
解题思路,把数组轮换想成栈的出栈后又入栈即可,当然要判断好K的量,因为K有可能会超过数组长度。
2024-08-15 11:19:50
241
原创 每日一题,力扣leetcode Hot100之56. 合并区间
每次进来一个数组,如果你的第1项大于别人的第2项,那么直接添加。然后合并的区间的第2项则为旧的和新的第2项的最大值。先按照每个数组的第一个数字sort排序。否则的话则存在可以合并的区间,
2024-07-30 13:21:53
219
原创 每日一题,力扣leetcode Hot100之560.和为K的子数组
暴力解法循环直接判断从每个index开始的切片是否满足。超时了,对于求和这部分进行优化。依然超时,考虑其他方法。
2024-07-29 10:54:52
290
原创 每日一题,力扣leetcode Hot100之438. 找到字符串中所有字母异位词
暴力解法,遍历,每次移动目标字符串的长度,将框出来的排序后字符串和排序后目标字符串进行比较,如果相等则保存其id,但是时间复杂度较高,差点超时。记录p字符串的字母频次p_cnt,和s字符串前m个字母频次s_cnt。判断p_cnt和s_cnt是否相等,相等则在返回值res中新增异位词索引 i - m + 1。继续遍历s字符串索引为[m, n)的字母,在s_cnt中每次增加一个新字母,去除一个旧字母。因为字符串中的字符全是小写字母,可以用长度为26的数组记录字母出现的次数。
2024-07-25 10:40:49
356
原创 每日一题,力扣leetcode Hot100之3. 无重复字符的最长子串
其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。直接暴力解法,利用双指针的思想,然后双层循环,每次第一个指针都定一个开头字母,另一个指针去向后依次寻找,如果有满足的则添加进临时子串,没有则直接break。意思就是依次把字符串加入到一个set中,虽然set是无序的,但是重复的时候只从字符串的左边一个一个判断直到把重复的给退了,这样就保证了字符是连续的。一直维持这样的队列,找出队列出现最长的长度时候,求出解!
2024-07-24 13:35:14
269
原创 每日一题,力扣leetcode Hot100之15.三数之和
当 nums[i]+nums[L]+nums[R]==0,执行循环,判断左界和右界是否和下一位置重复,去除重复解。若 nums[i]>0:因为已经排序好,所以后面不可能有三个数加和等于 0,直接返回结果。#由于排序了,所以第一个数如果大于0则不可能出现和为0的数,直接返回。1.特判,对于数组长度 n,如果数组为 null 或者数组长度小于 3,返回 []。#判断左右边界是否和下一位置重复,去除重复解。若和大于 0,说明 nums[R] 太大,R 左移。若和小于 0,说明 nums[L] 太小,L 右移。
2024-07-23 11:25:35
705
原创 每日一题,力扣leetcode Hot100之11. 盛最多的水
双层循环遍历找结果,相当于是一个暴力求解方法,两层嵌套循环的时间复杂度是O(N2),所以有一些样例测试时间超时。将一个指针指向队头,一个指针指向队尾,然后更新的时候判断是哪个指针指向的值小,则小的那个指针移动。在解法一的基础上,将双层嵌套循环改为指针,既可以实现将时间复杂度O(N2)降低为O(N)
2024-07-22 15:58:28
268
原创 每日一题,力扣leetcode Hot100之283. 移动零
首先,两个指针都指向同一个位置,i=j=0,如果移动指针i的位置不为0则进行交换,固定指针+1,如果为0的话,固定指针不变,移动指针往后面移一直找。这样的话固定指针就会指在0的位置,相当于移动指针遇到非0就和0进行交换。对于当前数组进行调整,不使用额外空间,那么既用双指针。
2024-07-19 14:57:32
384
原创 每日一题,力扣leetcode Hot100之128. 最长连续序列
解法一时间过高是因为会重复的进行判断,比如1,2,3,4是个连续序列,但是后面从2,3,4又开始判断,这是没必要的。并且判断重复以及是否连续的方法也太复杂了,可以直接考虑set,因为set会把重复的消除了,你只有判断你当前数字+1在不在set里面既可以满足。第一个想到的解法,就是对nums排序,然后双层循环遍历进行判断,当前一个和后一个相减等于1时则增加,当为0时则接着判断,当都不是时则进入下一轮循环,该想法写的只通过69/75,有一些例子时间超时了,故后面想了了其他的。这其实也算是一种哈希表的解法。
2024-07-18 11:15:39
352
原创 每日一题,力扣leetcode Hot100之49. 字母异位词分组
我们将每个字符串进行排序,如果排序后的结果相同,则可以认为是字母异位词,我们将排序后的结果作为哈希表的key,然后满足要求的作为value。字母异位词的每个词中的每个字母出现的次数一定是一样的,我们将字母出现次数的列表作为哈希表的key把符合要求的作为value即可。因为都是小写字母,我们初始化一个26大小全为0的数组,并且遍历整个字符串,把字母的次数加上对应的字母位置上。该题用哈希表解答,具有统一特征的作为哈希表的键名,然后满足要求的作为值。ord('a')-ord('a)=0故在数组的第0个位置+1。
2024-07-17 11:02:51
350
原创 力扣Hot100之两数之和
用哈希表,key存值,value存index,当target-num存在表中时直接返回。第一个方法时间复杂度高就算因为寻找target-num时间复杂度过高,但是这个方法只用遍历一次数组把寻找target-x的时间复杂度从O(N)降低到O(1).双层循环暴力求解,先在数组的一个位置定住然后在这个位置的后续位置进行判断,如果两个数加起来等于目标和那么就返回。注意第二个的index得是i+1+j,i+1表示从第i后面一个数开始,j表示二层循环的个数。
2024-07-16 19:38:20
260
1
原创 探索LangChain:让语言模型应用开发更加简单(什么是langchain)
在数字化时代,人工智能技术迅速发展,尤其是自然语言处理(NLP)技术在各行各业中的应用愈发广泛。从智能聊天机器人到高级数据分析,语言模型成为连接人类语言和机器智能的桥梁。然而,尽管语言模型的潜力巨大,许多开发者在实际开发应用时却面临诸多挑战,如模型集成复杂、开发周期长、资源消耗大等问题。在这样的背景下,LangChain应运而生。它是一个开源库,旨在帮助开发者更加高效地构建和部署语言模型应用。通过提供一套简化的接口和强大的工具集,LangChain使得即使是非专业的开发者也能快速地利用最先进的NLP技术
2024-05-13 18:36:06
876
原创 安装sklearn报错This error originates from a subprocess, and is likely not a problem with pip
安装sklearn报错This error originates from a subprocess, and is likely not a problem with pip
2024-05-10 18:40:09
356
原创 软件测试工程师介绍
在快速发展的软件行业中,软件测试工程师扮演着至关重要的角色。他们不仅是质量保证的第一道防线,也是确保软件产品满足用户需求、无缺陷地运行的关键。随着软件开发过程日益复杂和迭代速度的加快,软件测试工程师的工作变得更加重要但也更具挑战性。本文将深入探讨软件测试工程师的职责、必备技能以及面临的挑战,并展望未来的发展趋势。
2024-03-30 14:41:53
581
原创 自动驾驶汽车:计算机视觉的前沿应用
自动驾驶汽车技术是近年来最引人注目的技术进步之一,它承诺将彻底改变我们的出行方式,提高道路安全,减少交通堵塞,并对环境产生积极影响。在自动驾驶汽车的核心技术中,计算机视觉起着至关重要的作用。通过使汽车能够“看到”并理解其周围的世界,计算机视觉技术是实现高度自动化驾驶的关键。本文将探讨计算机视觉在自动驾驶汽车中的应用、面临的挑战以及未来的发展方向。
2024-03-30 14:35:08
1338
原创 什么是计算机视觉?计算机视觉:从基础到前沿
计算机视觉,作为人工智能的一个重要分支,致力于赋予机器“看”的能力——即从图像或视频中理解和解释视觉信息的能力。这项技术的发展为自动驾驶汽车、面部识别、机器人导航等多种应用开辟了道路,正在逐步改变我们的工作和生活方式。本文旨在提供一个关于计算机视觉的全面概述,从其基本概念到最新的研究进展,探讨它是如何逐渐成为现代科技不可或缺的一部分的。
2024-03-30 14:30:22
907
原创 什么是知识图谱?知识图谱的简介、定义以及介绍
什么是知识图谱?知识图谱的介绍知识图谱是一种结构化的语义知识库,用于存储实体(如人物、地点、组织等)之间的关系和属性。它通过图形的方式组织信息,使得数据之间的连接变得直观和可操作。
2024-03-27 10:04:10
1341
原创 Latex/overleaf用pdflatex编译模式如何显示中文问题
Latex/overleaf用pdflatex编译模式如何显示中文问题
2024-03-16 21:15:14
1951
1
原创 53.最大子数组和-leetcode-python解法(二维DP或者一维)
53.最大子数组和-leetcode-python解法(二维DP或者一维)
2023-04-04 12:01:44
619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人