
Leetcode(Easy)
链表: 21.83.141.160.203.206
二叉树: 100.101.104.107.108.110.111.112.226
数据库: 175.176.181.182.183.196.197
二进制: 190.191
weixin_...
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
876. Middle of the Linked List查找链表中间位置Java
给head定单链表的 ,返回链表的中间节点。如果有两个中间节点,则返回第二个中间节点。示例 1:输入: head = [1,2,3,4,5]输出: [3,4,5]解释:列表的中间节点是节点 3。示例 2:输入: head = [1,2,3,4,5,6]输出: [4,5,6]解释:由于列表有两个中间节点,值为 3 和 4,我们返回第二个。约束:列表中的节点数在范围内[1, 100]。1 <= Node.val <= 100方法1设置两个快慢指针, 快指针每次向后挪两原创 2021-11-23 14:27:03 · 806 阅读 · 0 评论 -
557. Reverse Words in a String III
给定一个 string s,颠倒句子中每个单词的字符顺序,同时仍然保留空格和初始单词顺序。示例 1:Input: s = “Let’s take LeetCode contest”Output: “s’teL ekat edoCteeL tsetnoc”示例 2:Input: s = “God Ding”Output: “doG gniD”约束:1 <= s.length <= 5 * 104s包含可打印的ASCII字符。s 不包含任何前导或尾随空格。有至少一个字s。中的原创 2021-11-22 14:12:21 · 320 阅读 · 0 评论 -
344. Reverse String反转字符串Java
编写一个反转字符串的函数。输入字符串作为字符数组给出s。您必须通过使用额外内存就地修改输入数组来完成此操作O(1)。示例 1:输入: s = [“h”,“e”,“l”,“l”,“o”]输出: [“o”,“l”,“l”,“e”,“h”]示例 2:输入: s = [“H”,“a”,“n”,“n”,“a”,“h”]输出: [“h”,“a”,“n”,“n”,"a “,“H”]约束:1 <= s.length <= 105s[i]是可打印的 ascii 字符。思路设置两个指针, 分原创 2021-11-22 08:07:37 · 605 阅读 · 0 评论 -
566. Reshape the Matrix重塑矩阵Java
在 MATLAB 中,有一个方便的函数调用reshape,它可以将m x n矩阵重塑为具有不同大小的新矩阵,并r x c保留其原始数据。给你一个m x n矩阵mat和两个整数r,c代表想要的重构矩阵的行数和列数。重构后的矩阵应该以与它们相同的行遍历顺序填充原始矩阵的所有元素。如果reshape给定参数的运算可行且合法,则输出新的整形矩阵;否则,输出原始矩阵。示例 1:输入: mat = [[1,2],[3,4]], r = 1, c = 4输出: [[1,2,3,4]]示例 2:输入:原创 2021-11-14 07:32:55 · 720 阅读 · 0 评论 -
283. Move Zeroes将0挪到后面 Java
给定一个整数数组nums,将 all 移到0它的末尾,同时保持非零元素的相对顺序。请注意,您必须在不复制数组的情况下就地执行此操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]约束:1 <= nums.length <= 104-231 <= nums[i] <= 231 - 1方法1遍历每个数, 如果当前数位0则与后面不为0的数调换class Solution原创 2021-11-11 08:54:19 · 237 阅读 · 0 评论 -
350. Intersection of Two Arrays II寻找两个数组交集Java
给定两个整数数组nums1and nums2,返回它们的交集数组。结果中的每个元素必须出现与它在两个数组中显示的一样多的次数,并且您可以按任何顺序返回结果。示例 1:输入: nums1 = [1,2,2,1],nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]解释: [9,4] 也被接受。约束:1 <= nums1.length, nums2.length <= 10000原创 2021-11-05 07:47:01 · 228 阅读 · 0 评论 -
746. Min Cost Climbing Stairs最小花费上楼梯Java
给定一个整数数组cost,其中cost[i]是楼梯上的步骤成本。支付费用后,您可以爬上一两步。您可以从步骤与指数无论是启动0,或索引步骤1返回到达楼层顶部的最低成本。示例 1:输入: cost = [10, 15 ,20]输出: 15解释:你将从索引 1 开始。支付 15 并爬两步到达顶部。总成本是15。示例 2:输入: cost = [ 1 ,100, 1 ,1, 1 ,100, 1 , 1 ,100, 1 ]输出: 6解释:你将从索引 0 开始。支付 1 并爬两步到达指数原创 2021-11-04 09:44:07 · 160 阅读 · 0 评论 -
977. Squares of a Sorted Array有序数组的平方Java
给定一个nums按非降序排序的整数数组,返回一个按非降序排序的每个数字的平方数组示例 1:输入: nums = [-4,-1,0,3,10]输出: [0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]。排序后变成[0,1,9,16,100]。示例 2:输入: nums = [-7,-3,2,3,11]输出: [4,9,9,49,121]约束:1 <= nums.length <= 104-104 <= nums[i] <= 104n原创 2021-11-02 09:26:54 · 119 阅读 · 0 评论 -
1137. N-th Tribonacci Number第n个Tribonacci数Java
Tribonacci 数列 T n定义如下:T 0 = 0,T 1 = 1,T 2 = 1,且 T n+3 = T n + T n+1 + T n+2对于 n >= 0。给定n,返回 T n的值。示例 1:输入: n = 4输出: 4解释:T_3 = 0 + 1 + 1 = 2T_4 = 1 + 1 + 2 = 4示例 2:输入: n = 25输出: 1389537Notice0 <= n <= 37答案保证适合 32 位整数,即。answer <= 2^原创 2021-11-01 09:02:15 · 142 阅读 · 0 评论 -
509. Fibonacci Number斐波那契数Java
所述斐波那契数,通常表示为F(n)形式的序列,称为斐波纳契数列,使得每个数字是两个前述者的总和,起始0和1。F(0) = 0, F(1) = 1F(n) = F(n - 1) + F(n - 2),对于 n > 1。给定n,计算F(n)。示例 1:输入: n = 2输出: 1解释: F(2) = F(1) + F(0) = 1 + 0 = 1。示例 2:输入: n = 3输出: 2解释: F(3) = F(2) + F(1) = 1 + 1 = 2。示例 3:输入: n = 4原创 2021-11-01 07:45:13 · 155 阅读 · 0 评论 -
278. First Bad Version寻找第一个坏的版本Java
您是产品经理,目前正在领导一个团队开发新产品。不幸的是,您产品的最新版本未通过质量检查。由于每个版本都是在上一个版本的基础上开发的,所以一个坏版本之后的所有版本也是坏的。假设您有n版本[1, 2, …, n]并且您想找出第一个坏的版本,这会导致以下所有版本都是坏的。您将获得一个 API bool isBadVersion(version),该 API会返回是否version错误。实现一个函数来查找第一个坏版本。您应该尽量减少对 API 的调用次数。示例 1:输入: n = 5, bad = 4输出原创 2021-10-31 12:52:13 · 187 阅读 · 0 评论 -
704. Binary Search二分查找Java
给定整数的数组nums,其按升序排序,和一个整数target,写一个函数来搜索target在nums。如果target存在,则返回其索引。否则,返回-1。编写具有O(log n)运行时复杂性的算法。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: nums 中存在 9,其索引为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 在 nums 中不存在所以返回 -1Notic原创 2021-10-31 12:47:53 · 125 阅读 · 0 评论 -
231. Power of Two判断是否为2的幂Python
给定一个整数,编写一个函数以确定它是否为2的幂。Input: 2Output: TrueInput: 1Output: TrueInput: 10Output: FalseMethod 1从大到小递减除2判断余数是否为1class Solution: def isPowerOfTwo(self, n: int) -> bool: if n<=0: return False while n>原创 2020-06-09 13:37:07 · 356 阅读 · 0 评论 -
226. Invert Binary Tree反转二叉树Python
InputOutput原创 2020-06-09 04:06:14 · 294 阅读 · 0 评论 -
225. Implement Stack using Queues使用队列实现堆栈Python
使用队列实现堆栈的以下操作。push(x)-将元素x推入堆栈 pop()-删除堆栈顶部的元素。 top()-获取顶部元素。 empty()-返回堆栈是否为空。和170设计两个数加和的函数类似class MyStack: def __init__(self): """ Initialize your data structure here. """ self.queue=[] def pus原创 2020-06-08 11:36:01 · 253 阅读 · 0 评论 -
219. Contains Duplicate II查找重复数位置差小于指定值Python
给定一个整数数组和一个整数k,找出数组中是否存在两个不同的索引i和j,使得nums [i] = nums [j],并且i和j之间的绝对差最大为k。Input: nums=[1,2,3,1,2,3] k=2Output: False(nums[0]=nums[3], 3-0>2)Input: nums=[1,2,2,2,1] k=2Output: True(nums[1]=nums[3]=nums[2], 3-1=2, 2-1<2)Clue: 用enumerate()函数得到每原创 2020-06-08 08:37:31 · 140 阅读 · 0 评论 -
217. Contains Duplicate判断list中是否包含重复数Python&Java
给定一个整数数组,查找该数组是否包含任何重复项。 如果任何值在数组中至少出现两次,则函数应返回true;如果每个元素都不同,则函数应返回false。Input: [1,2,3,1]Output: TrueInput: []Output: FalseInput: [1]Output: False首先想到搞一个list,如果数不存在list里面就加进去,如果存在就返回True, 可行倒是可行,但是超时了= =因为用好几万的数字做测试class Solution: def原创 2020-06-08 05:27:15 · 363 阅读 · 0 评论 -
206. Reverse Linked List翻转链表Python
反转单链列表。Input:1->2->3->4->5->NULLOutput:5->4->3->2->1->NULLMethod 1 循环class Solution: def reverseList(self, head: ListNode) -> ListNode: pre=None cur=head while cur: temp=cur.原创 2020-06-08 04:11:18 · 168 阅读 · 0 评论 -
205. Isomorphic Strings判断是否为同构字符串Python
给定两个字符串s和t,确定它们是否同构。如果可以替换s中的字符以获得t,则两个字符串是同构的。在保留字符顺序的同时,必须将所有出现的字符替换为另一个字符。没有两个字符可以映射到同一字符,但是一个字符可以映射到自身。给定s和t的长度相同Input: s='again' t='paper'Output: TrueInput: s='trump' t='idiot'Output: FalseClue: 如果s和t是同构的,那就可以用s中的字符映射t, 例如s='again' t='pape原创 2020-06-07 10:18:25 · 576 阅读 · 1 评论 -
204. Count Primes计算n以内素数的个数Python
计算小于非负数n的质数数。Input: 10Output: 4(2,3,5,7)素数就是除了1和它本身不能被其他数整除的数开始用了判断每个数是不是素数然后把它去除的方法但是运行超时了>_<class Solution: def countPrimes(self, n: int) -> int: res=list(range(2,n)) #生成2到n的list for i in range(2,n+1): #需要运算到n,所以要n原创 2020-06-07 05:58:47 · 1053 阅读 · 0 评论 -
203. Remove Linked List Elements从链表中移除所有特定数Python
从整数链接列表中删除所有值为val的元素。Input:1->2->6->3->4->5->6, val = 6Output:1->2->3->4->5原创 2020-06-06 12:28:39 · 379 阅读 · 0 评论 -
202. Happy Number按位平方加和循环最后是否为1Python
编写算法以确定数字n是否为“ happy”。一个快乐的数字是由以下过程定义的数字:从任何正整数开始,用该数字的平方和代替该数字,然后重复该过程,直到该数字等于1(它将停留在该位置),或它以不包含1的循环无限循环。以1结尾的那些数字是快乐数字。如果n是一个快乐数字,则返回True;否则返回False。Input: 19Output: True(1²+9²=82 8²+2²=62 6²+2²=100 1²+0²+0²=1)Input: 2Output:False(2²=4)...原创 2020-06-06 06:15:29 · 282 阅读 · 0 评论 -
197. Rising Temperature温度上升的那些天Mysql
给定一个weather表,编写一个SQL查询以查找与其以前(昨天)日期相比温度更高的所有日期的id。weatherOutput:Clue: 用join连接连个表a,b。让a的日期和b的下一天相连select a.id from weather ajoin weather bon a.recorddate=date_add(b.recorddate,interval 1 day)where a.temperature>b.temperature两个表相连:a ...原创 2020-06-05 08:42:04 · 202 阅读 · 0 评论 -
196. Delete Duplicate Emails删除重复的电子邮件MySQL
编写SQL查询以删除名为Person的表中所有重复的电子邮件条目,并仅基于其最小ID保留唯一的电子邮件。personClue: 先找出email不重复的id,并从小到大排序定义为表a;然后从表中删除不存在a中的数据。首先定义表a,用group byselect min(id) id from persongroup by emailOutput:a然后从person表删除不在a中的数据delete from person pwhere id not in(...原创 2020-06-04 12:50:31 · 209 阅读 · 0 评论 -
195. Tenth Line打印第十行Bash
给定一个文本文件file.txt,仅打印文件的第10行。file.txt具有以下内容:Output: Line 10注意: 1.如果文件少于10行,应该输出什么?2.至少有三种不同的解决方案。尝试探索所有可能性。# Read from the file file.txt and output the tenth line to stdout.cat file.txt | sed -n 10p# 2.0sed -n 10p file.txt#3.0awk 'NR == 1.原创 2020-06-04 04:58:46 · 210 阅读 · 0 评论 -
193. Valid Phone Numbers有效的电话号码Bash
给定一个包含电话号码列表(每行一个)的文本文件file.txt,编写一个线性衬里脚本来打印所有有效的电话号码。>假定有效的电话号码必须以以下两种格式之一出现:(xxx)xxx-xxxx或xxx-xxx-xxxx。 (x表示一个数字)>还可以假定文本文件中的每一行都不得包含前导或尾随空格假设file.txt具有以下内容:987-123-4567123 456 7890(123) 456-7890您的脚本应输出以下有效电话号码:987-123-4567(123) 4原创 2020-06-04 03:56:38 · 199 阅读 · 0 评论 -
191. Number of 1 Bits二进制中1的个数Python
编写一个函数,该函数采用无符号整数并返回其具有的``1''位数(也称为汉明权重Hamming weight)。Input: 00000000000000000000000000001011Output: 3(里面有3个1)Method 1先考虑用count的方法查里面有几个1,直接count不行,需要bin转换一下class Solution: def hammingWeight(self, n: int) -> int: res=str(bin(n)).原创 2020-06-03 03:12:19 · 969 阅读 · 0 评论 -
190. Reverse Bits反转位Python
给定的32位无符号整数的反向位。Input:00000010100101000001111010011100(43261596)Output:00111001011110000010100101000000(964176192)PS>在某些语言(例如Java)中,没有无符号整数类型。 在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为该整数的内部二进制表示形式是有符号的还是无符号的。>在Java中,编译器使用2的补码表示法来表示有符号整数。因此,原创 2020-06-02 10:43:04 · 523 阅读 · 0 评论 -
183. Customers Who Never Order没有下过订单的顾客MySQL
假设一个网站包含两个表,Customers表和Orders表。编写SQL查询以查找所有没订购任何商品的客户。customersordersOutput用到left outer join:select c.name Customers from customers cleft outer join orders o on c.id=o.customeridwhere customerid is null或者直接找表中不存在的:select customers.na..原创 2020-06-01 08:24:25 · 891 阅读 · 0 评论 -
182. Duplicate Emails查找重复邮件MySQL
编写SQL查询以在名为Person表中查找所有重复的电子邮件。输出:a@b.com用group by 分组然后having 查找count(email)大于1的邮箱select email from persongroup by emailhaving count(email)>1原创 2020-06-01 05:46:16 · 193 阅读 · 0 评论 -
181. Employees Earning More Than Their Managers员工工资超过雇主mySQL
Employee表包含所有员工,包括他们的经理。每个员工都有一个ID,并且对应他们的管理者ManagerID列。Henry的管理者就是4号Max在给定Employee表的情况下,编写一个SQL查询,找出收入高于其经理的雇员。对于上表,乔是唯一一个收入高于其经理的雇员。用连接的方法:select e.Name from employee e ---定义两个表e(雇员), o(雇主)join employee o on e.ManagerId=o.Id ---内连接:取managerID原创 2020-05-31 11:44:52 · 240 阅读 · 1 评论 -
176. Second Highest Salary第二高的工资MySQL
编写一个SQL查询以从Employee表中获取第二高的薪水。给定上面的Employee表,查询应返回200作为第二高的薪水。如果没有第二高的薪水,则查询应返回null。# Write your MySQL query statement belowselect max(salary) SecondHighestSalary from employeewhere salary<(select max(salary) from employee)第一次没命名SecondHighes.原创 2020-05-31 10:27:44 · 226 阅读 · 1 评论 -
175. Combine Two Tables合并两个表MySQL
编写一个用于查询的SQL查询,该查询将为Person表中的每个人提供以下信息,而不管每个人是否都有地址:FirstName, LastName, City, Statetable1:PersonPK:PersonIdtable2:AddressPK:AddressIdPS,因为自己建的两个table,所以忽略type类型括号里面的数如果直接select p.FirstName, p.LastName, a.City, a.State from Person p,A...原创 2020-05-30 08:40:09 · 182 阅读 · 0 评论 -
172. Factorial Trailing Zeroes阶乘尾数为零的个数Python
给定整数n,返回n!中的末尾零的个数。Input: 3!Output: 0 (1x2x3=6)Input: 5!Output: 1 (1x2x3x4x5=120)首先想到的是直接算完答案之后计算它末尾的0,可行是可行,但是太慢了。class Solution: def trailingZeroes(self, n: int) -> int: i=n-1 res=n while i>0: re原创 2020-05-30 06:11:38 · 179 阅读 · 0 评论 -
171. Excel Sheet Column Number大写英文字母转换数字Python
给定大写字母,转换其数字编号。A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28...Input: "Z"Output:26INput: "ZY"Output: "701"让我想到了168题...下面这段代码只用到了字符串逆序,enumerate返回字符串位置和值,还有ord()返回ASCII码。class Solution: def titleToNumber(sel原创 2020-05-29 13:06:46 · 328 阅读 · 0 评论 -
170. Two Sum III - Data structure design两个数加和III堆栈Python
设计并实现TwoSum类。它应该支持以下操作:添加和查找。add-将数字添加到内部数据结构中。find-查找是否存在任何一对数字,其总和等于该值。Input:add(1); add(3); add(5);Output: find(4) -> true find(7) -> false在初始化和添加数字的时候都没什么特殊,主要是find,首先想到了把add的数字从小到大排序之后用167题的方法class TwoSum: def __i...原创 2020-05-29 10:31:41 · 181 阅读 · 0 评论 -
169. Majority Element出现次数最多的数Python
给定大小为n的数组,找到多数元素。多数元素是出现超过n / 2倍的元素。可以假定数组为非空,并且多数元素始终存在于数组中。Input:[2,2,1,1,1,2,2]Output: 2首先我想到的是算他们出现的次数,然后找出出现次数多余长度的class Solution: def majorityElement(self, nums: List[int]) -> int: l=len(nums)/2 time=Counter(nums) .原创 2020-05-28 13:08:38 · 156 阅读 · 0 评论 -
168. Excel Sheet Column Title数字匹配大写字母Python
给定一个正整数,返回对应的大写字母。1 -> A2 -> B3 -> C...26 -> Z27 -> AA28 -> AB...Input: 701Output: ZYclass Solution: def convertToTitle(self, n: int) -> str: # a=[chr(i) for i in range(65,91)] 生成大写字母 title = [原创 2020-05-28 12:53:37 · 170 阅读 · 0 评论 -
167. Two Sum II - Input array is sorted在一个升序数组中找出两个数加和等于特定值Python & Java
给定一个已经按升序排序的整数数组,请找到两个数字,使它们加起来成为一个特定的目标数字。函数twoSum应该返回两个数字的索引,以使它们加起来等于目标,其中index1必须小于index2。注意: 返回的答案(index1和index2)都不基于零。 可以假设每个输入都只有一个解决方案,并且可能不会两次使用同一元素。Input:numbers = [2,7,11,15], target = 9Output:[1,2] (2+7=9)首先看到这个题觉得这和1.two sum有什么区别么,只.原创 2020-05-27 04:26:24 · 398 阅读 · 2 评论 -
160. Intersection of Two Linked Lists查找两个链表的交集Python
编写程序以查找两个单链表的交点开始的节点。Input:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3Output: Reference of the node with value = 8相交节点的值为8(请注意,如果两个列表相交,则该值不得为0)因为说了intersect Value不能为0所以line3,4给注释掉了。代码下面有程序运行过程,方便理解测试值是图里.原创 2020-05-26 14:44:44 · 290 阅读 · 0 评论