尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
LeetCode 热题 100-简单题
1. 两数之和给定一个整数数组nums和一个整数目标值target请你在该数组中找出和为目标值target的那两个整数并返回它们的数组下标。你可以假设每种输入只会对应一个答案并且你不能使用两次相同的元素。你可以按任意顺序返回答案。暴力解法class Solution: def twoSum(self, nums: List[int], target: int) - List[int]: len1len(nums) for a in range(0,len1): for b in range(a1,len1): if nums[a]nums[b]target: return [a,b]官方题解最底下还有一行return [ ],保证题目有解增强代码健壮性。283. 移动零给定一个数组nums编写一个函数将所有0移动到数组的末尾同时保持非零元素的相对顺序。请注意必须在不复制数组的情况下原地对数组进行操作。class Solution: def moveZeroes(self, nums: List[int]) - None: len1len(nums) for i in range(len1): if nums[i]0: nums.pop(i) nums.append(0) ii-1 return nums这是我初始的代码可以通过部分案例。明明可以通过[0,1,0,3,2]的测试却不能通过[0,0,1]。怀疑无法通过连续0。也就是说for循环回不去原来的i值哪怕我写了ii-1。拿[0,0,1]举例第一个 0 被 pop数组整体左移第二个 0 跑到下标 0但 for 循环 i 已经走到 1再也不会回头访问下标 0,所以会漏掉第二个0。。所以在这里要使用while循环手动控制i变量ii-1才会生效。用while循环的话需要提前声明i0。class Solution: def moveZeroes(self, nums: List[int]) - None: len1len(nums) i0 while i len1 : if nums[i]0: nums.pop(i) nums.append(0) len1 -1 else: i 1 return nums题解给的答案是双指针。我还没悟透。136. 只出现一次的数字给你一个非空整数数组nums除了某个元素只出现一次以外其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题且该算法只使用常量额外空间。class Solution: def singleNumber(self, nums: List[int]) - int: len1 len(nums) if len11: return nums[0] for i in range(0,len1): for j in range(i1,len(nums)): if nums[i] nums[j]: break return nums[i]//通过47/61个案例刚开始不明白为什么错案例也一直没通过。后来发现如果j在i后面范围那如果前面出现同样的值就无法确定。所以i和j应该是同样的rangelen1并且加上附加条件:nums[i]nums[j] and i!j.class Solution: def singleNumber(self, nums: List[int]) - int: len1 len(nums) if len11: return nums[0] for i in range(len1): isture 1 for j in range(len1): if nums[i] nums[j] and i !j: isture 0 break if isture 1: return nums[i]更改后可通过。但是时间复杂度是O(n^2)不符合题目要求的线性时间复杂度。题目同时还要求常数空间复杂度。题解给出了位运算。太天才了。python需要给出的答案甚至只有一行class Solution: def singleNumber(self, nums: List[int]) - int: return reduce(lambda x, y: x ^ y, nums)展开就是这样class Solution: def singleNumber(self, nums: List[int]) - int: res 0 for num in nums: res res ^ num//异或运算 return res异或运算^a ^ a 0两个相同数字异或结果为 0a ^ 0 a数字和 0 异或等于本身满足交换律、结合律169. 多数元素给定一个大小为n的数组nums返回其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的并且给定的数组总是存在多数元素。这道题我刚开始的想法是把每一个元素出现的次数找出来然后把次数与n/2对比大于就是。但我发现不是很好操作。于是我看了题解。发现一个摩尔投票法的概念很好理解。当前数记为众数如果遇到这个数那么1如果不是就-1.因为众数大于n/2所以最后一定是正值。class Solution: def majorityElement(self, nums: List[int]) - int: count 0 x 0 for i in nums: if count 0: x i if i x: count 1 else: count - 1 return x举例如果数组是[1,0,0,1,5,5,5]这样count值就会是1010123。遍历数组要是正值被抵消就说明当前值不是众数不被抵消就直接输出。15. 三数之和给你一个整数数组nums判断是否存在三元组[nums[i], nums[j], nums[k]]满足i ! j、i ! k且j ! k同时还满足nums[i] nums[j] nums[k] 0。请你返回所有和为0且不重复的三元组。注意答案中不可以包含重复的三元组。class Solution: def threeSum(self, nums: list[int]) - list[list[int]]: len1len(nums) count 0 if len1 2: return [] for i in nums: for j in nums: j!i for k in nums: k!i,k!j if i jk 0: count1 if count 0: return [] for i in nums: for j in nums: j!i for k in nums: k!i,k!j if i jk 0: count1 return [i,j,k]这是我最先开始的代码只能输出一组答案而且没有最外层[ ]。也没有去重。三重暴力很容易超时。这道题好像只能用双指针。class Solution: def threeSum(self, nums: List[int]) - List[List[int]]: res [] nums.sort() n len(nums) for i in range(n): # i去重和上一个相同就跳过 if i 0 and nums[i] nums[i-1]: continue left i 1 right n - 1 while left right: s nums[i] nums[left] nums[right] if s 0: res.append([nums[i], nums[left], nums[right]]) # left去重 while left right and nums[left] nums[left1]: left 1 # right去重 while left right and nums[right] nums[right-1]: right - 1 left 1 right - 1 elif s 0: left 1 else: right - 1 return res双指针我一直不太懂。慢慢看能看明白但自己写不出来。我需要一点时间再理解一下。
RELATED

相关推荐

Grok多语言接入实战:从API调用到WinForm桌面应用

Grok多语言接入实战:从API调用到WinForm桌面应用

当业务需要把同一个 AI 模型接入多语言场景时,开发者最关心的问题往往非常具体:接口参数怎么传?模型会不会总用英文回答?桌面应用里如何实现一键切换语言?最近 Grok 正在推进多语言支持,并公开征求翻译反馈…

📅 2026/11/10 9:31:37
计及人员占用的暖通空调负荷群协同优化与模型预测控制应用

计及人员占用的暖通空调负荷群协同优化与模型预测控制应用

1. 项目概述:当暖通空调遇上配电网,一场关于“时空”的博弈 最近在梳理一些关于综合能源系统与需求侧响应的文献时,这篇《计及占用影响的集成楼宇暖通空调负荷群配电网优化方法》的标题一下子抓住了我的眼球。它像是一个精巧的工程问题&#…

📅 2026/10/6 2:00:44
数学建模竞赛C题解题框架:从问题分析到代码实现的完整指南

数学建模竞赛C题解题框架:从问题分析到代码实现的完整指南

1. 项目概述:从“解题”到“建模”的思维跃迁 每年一到九月,全国各高校理工科乃至经管类专业的学生圈子里,讨论热度最高的话题之一,必定是“国赛”——全国大学生数学建模竞赛。我作为从参赛队员一路走到指导老师的“老建模人”&a…

📅 2026/10/8 3:57:17
MORE NEWS

更多资讯

📰

特种工考证遇到的问题怎么报名最稳妥

特种工考证遇到的问题怎么报名最稳妥 怕考不过白交培训费?特种工考证遇到的问题你不是一个人,很多刚入行的朋友都在担心培训费打水漂。别急,今天就带大家理清楚特种工怎么报名,怎么避免掉进坑里,尤其针对南阳卧龙区的水利工程从业者,从报考流程、备考建…

📰

青州电工证在哪里复审 2026河南最新政策下怎么不白交培训费

青州电工证在哪里复审 2026河南最新政策下怎么不白交培训费 怕考不过白交培训费?青州电工证在哪里复审?2026河南最新政策来了,别再踩坑!…

📰

特种作业操作证硝化证丢了怎么补办?真实经历告诉你怎么搞

特种作业操作证硝化证丢了怎么补办?真实经历告诉你怎么搞 之前考的证在外省能不能转过来?这个问题我见过太多人问了。我自己就是从河南郑州转岗过来的,当时在老家考了特种作业操作证硝化证,到这边才发现证书不通用,差点就耽误了工作。今天我就从…

📰

低压电工证复审全过程要多少钱?打工人必须知道的避坑指南

低压电工证复审全过程要多少钱?打工人必须知道的避坑指南 你是电工,手里没低压电工证,连工地门都进不去,更别说干活拿钱了。现在找工作,电工证几乎是标配,而低压电工证复审又成了不少人的“心病”, 多少钱…

📰

宿州考电工证到哪考?学历不高怕报不上名?费用多少钱?

宿州考电工证到哪考?学历不高怕报不上名?费用多少钱? 你是不是也这样想:自己学历不高,担心报名考电工证会被拒?其实完全不用担心,只要你是特种作业岗位的从业者,或想从事相关工作,电工证就是你必须拿下的“入场券”。而且, 多少钱…

📰

货车高压电工证怎么考保姆级教程:怕考不过白交培训费?这份攻略教你一次过

货车高压电工证怎么考保姆级教程:怕考不过白交培训费?这份攻略教你一次过 怕考不过白交培训费?别慌!这份保姆级教程专为货车高压电工证报考者量身打造,手把手带你从零基础到拿证,省时省力省心,告别培训机构套路,不再踩坑!…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬