LeetCode
当代女大学生
这个作者很懒,什么都没留下…
展开
-
C语言 猴子吃桃问题
猴子吃桃问题有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。试问这堆桃最初有多少个?思路:给出的是最后一天的剩余桃子数量 从最后一天往前推算 假设最后一天原有桃子数为 2N 那么当天吃掉的桃子数为 N+1 当天剩余桃子数为 N-1 由题意可得 N-1=1 则N=1+1=2 第十天原有桃子数 2N=...原创 2019-01-27 17:03:14 · 1025 阅读 · 0 评论 -
<数据库> LEAD函数的用法 Leetcode 1709. 访问日期之间最大的空档期
对于一张表的一行数据而言,在其之上的是Lag, 在其之下的是Lead+---------+------------+ LAG()------------------------ current_row------------------------ LEAD()+-----------------------+LEAD函数用法:LEAD(col, offset, default)col - 指你要操作的那一列offset - ...原创 2022-03-04 20:35:45 · 594 阅读 · 0 评论 -
python set函数 集合的操作
dic=set() # 定义集合dic.add( 1) # 加上1dic.remove( 1) # 移除13. 无重复字符的最长子串https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/原创 2022-03-01 21:13:59 · 409 阅读 · 0 评论 -
LeetCode 1160. 拼写单词 ——collections.Counter
题目:给你一份『词汇表』(字符串数组)words和一张『字母表』(字符串)chars。假如你可以用chars中的『字母』(字符)拼写出 words中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个字母都只能用一次。返回词汇表words中你掌握的所有单词的 长度之和。思路:这道题一看就是用的哈希表我的题解:class Solution(object): d...原创 2021-07-10 18:33:47 · 104 阅读 · 0 评论 -
LeetCode 169. 多数元素
题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:[3,2,3]输出:3示例2:输入:[2,2,1,1,1,2,2]输出:2进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。本题和leetcode剑指 Offer 39. 数组中出现次数超过一半的数字题目一样解析:本题常见的三种解...原创 2021-07-10 15:07:18 · 101 阅读 · 1 评论 -
<数据库> LeetCode 627. 变更性别
无法做到只用一个update题解:update salaryset sex=if(sex='m','f','m')注意:update的句式 update - set - where sql也有 if 函数的使用原创 2021-07-07 10:28:53 · 93 阅读 · 0 评论 -
<数据库> LeetCode 596. 超过5名学生的课
思路:原表 as a找出distinct的课 as b在a中 生成b中的每个课程的len判断错误:len 不是这么用的 应该用count题解:select classfrom coursesgroup by classhaving count(distinct student)>=5注意:用group by 用count 用distinct 用having 对group之后的表格再筛选...原创 2021-07-06 21:36:38 · 61 阅读 · 1 评论 -
<数据库> LeetCode 197. 上升的温度
思路:表a 表b 都是原表select b.idfromwherea.data <b.dataa.temp<b.temp错误:没有考虑到必须是相邻的两天题解:select distinct a.idfrom Weather as a, Weather as bwhere DATEDIFF(a.recordDate,b.recordDate)=1 and a.Temperature > b.Tempera...原创 2021-07-06 21:22:39 · 75 阅读 · 0 评论 -
<数据库> LeetCode 196. 删除重复的电子邮箱
思路:先找出distinct的邮箱 作为表a在从person中找出邮箱位于表a中的人limit 1思路错了limit 1 不是这么用 题目要求找出id最小的题解:delete a.*from Person as a, Person as bwhere a.Email = b.Email and a.Id>b.Id删除不符合要求的表就行了tips:当成公式记忆 select - from - where...原创 2021-07-06 21:07:40 · 174 阅读 · 0 评论 -
<数据库> LeetCode 182. 查找重复的电子邮箱
思路:本来考虑用left join“ distinct一下用当前的减去distinct得到的就是重复的邮箱再对上面的这个结果distinct ”后来参考181题的题解做出来的select distinct a.Emailfrom Person as a, Person as bwhere a.Email = b.Email and a.Id <> b.Id...原创 2021-07-06 20:47:51 · 131 阅读 · 0 评论 -
<数据库> LeetCode 181. 超过经理收入的员工
思路有 不太会写 看的题解select a.Name as Employeefrom Employee as a, Employee as bwhere a.ManagerId=b.Id and a.Salary>b.Salary需要注意第一行 要给a表更改表名 第三行 最后要加上逗号原创 2021-07-06 20:33:57 · 72 阅读 · 0 评论 -
<数据库> LeetCode 176. 第二高的薪水
题解:SELECT IFNULL( (SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET 1), NULL) AS SecondHighestSalary刚开始刷数据库 直接看的题解本题需要注意distinctifnull 函数 如果为空就返回第二个值limit 函数 限制输出 只输出一个offset 函数 跳过 跳过一.原创 2021-07-06 19:58:55 · 66 阅读 · 0 评论 -
LeetCode 剑指offer45 把数组排成最小的数 题解 ——>自定义排序规则functools.cmp_to_key( )
我的思路:1.将nums变成字符串数组2.对数组排序 再将排序后的数组合并成字符串遇到的问题:有的排序结果和题目不符合 eg:32和320 应该是320排在前面 但是sort函数会把32放在前面题解代码:def sort_rule(x, y): a, b = x + y, y + x if a > b: return 1 elif a < b: return -1 else: return 0 strs ...原创 2021-03-30 20:55:50 · 171 阅读 · 0 评论 -
leetcode 300. 最长递增子序列 <动态规划问题>
300. 最长递增子序列难度中等1419收藏分享切换为英文接收动态反馈给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = ...原创 2021-03-05 12:35:58 · 94 阅读 · 0 评论 -
LeetCode 1535. 找出数组游戏的赢家
笨办法直接按照题意改变数组 时间复杂度极高不改变数组:i 记录当前胜利者的位置j 记录当前的比较对象def getWinner(self, arr, k): # time记录当前这个数胜利的次数 time=0 length=len(arr) if length<=k: return (max(arr)) elif length==1: return (a..原创 2021-01-04 17:28:07 · 103 阅读 · 1 评论 -
LeetCode 135.分发糖果
我的错误思路1:对相邻的元素进行判断如果当前元素比前面的大 当前元素就要比前面的多一个糖果如果当前元素比后面的大当前元素就要比后面的多一个糖果对开头和末尾的两对元素单独讨论我的代码:ratings=[1,2,87,87,87,2,1]ans=len(ratings)tmp=[1]*len(ratings)# 对开头两个元素单独处理if ratings[0]>ratings[1]: tmp[0]+=1# 对中间相邻的元素处理for i in ra...原创 2020-12-24 18:43:39 · 81 阅读 · 1 评论 -
LeetCode 1122.数组的相对排序
我的思路:将列表通过某种方式转换成字典 这样就可以记录每个数字出现的次数 然后根据出现次数来生成新的列表遇到的问题:对字典不熟悉 似乎没有能够直接通过字典的key查找到value的办法 所以还是要遍历 时间复杂度太高题解思路:设置一个数组来存放数字出现的次数这么简单的题居然没想出来...代码:def relativeSortArray(self, arr1, arr2): # 用tmp来存储元素个数 tmp=[0]*1001..原创 2020-12-22 21:09:38 · 55 阅读 · 1 评论 -
LeetCode 1608.特殊数组的特征值
我的思路:对原数组排序 用number记录大于等于当前数字的个数(也就是包括当前数字 数组后面还剩多少个数字)我的代码:def specialArray(self, nums): # 对数组排序 i代表下标 number代表当前可能的特征值 nums.sort() length=len(nums) i=0 number=length # 如果当前的数字大于等于特征值 并且前面的数字小于特征值 ...原创 2020-12-22 20:18:13 · 129 阅读 · 0 评论 -
LeetCode 103.二叉树的锯齿形层次遍历
二叉树的层次遍历代码:# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Nonedef levelOrder(self, root: TreeNode) -> List[List[int]]: if not root: ..原创 2020-12-22 11:29:48 · 76 阅读 · 0 评论 -
LeetCode 1539.第k个缺失的正整数
我的思路:例如:arr = [2,3,4,7,11], k = 5我的代码:def findKthPositive(self, arr, k): # 如果有缺的数字 缺的第k个数字是i+k for i in range(len(arr)): if arr[i]>i+k: return i+k # 如果没有缺的数字 直接在后面补上k return len..原创 2020-12-18 19:38:45 · 95 阅读 · 1 评论 -
LeetCode 605.种花问题
我的思路:当n=0时 直接满足条件当n>0时 分两种情况: 1.花坛中本来没有花 也就是数组全部都是0 2.花坛中本来有花 这时候要分头尾和中间的情况 ①头尾 可以种(0的个数)//2朵花 ②中间 可以种(0的个数减去1)//2 朵花最后比较可以种花的个数和n我的代码:def canPlaceFlowers(self, flowerbed, n): can_plant=0 ...原创 2020-12-16 11:36:50 · 151 阅读 · 0 评论 -
LeetCode 738.单调递增的数字
我的思路:数字只有一位 直接返回自身数字有多位 要分情况讨论case1:3089 3089小于3333 所以返回2000+最大的三位数 也就是2000+999=2999case2:2315 2315大于2222 所以返回2000+315中最大的满足条件的数字 315小于333 所以最大的满足条件的数字是299 因此返回2000+299=2299我的代码:def monotoneIncreasingDigits(self,...原创 2020-12-15 11:22:58 · 196 阅读 · 0 评论 -
LeetCode 49.字母异位词分组
我的思路:结构体 最终以结构体的思路用列表实现我的代码:def groupAnagrams(self, strs): """ :type strs: List[str] :rtype: List[List[str]] """ tmplist=[] # tmplist用来存储原字符串和排序后的字符串 littlelist=[] # littlelist用来存储最终返回的列表中的小列表 ..原创 2020-12-14 20:32:57 · 120 阅读 · 0 评论 -
LeetCode 649. Dota2 参议院
思路:遍历字符串 找到当前参议员后面的第一个对手 并且剔除该对手 直到最后字符串中只剩下同一个阵营的字母代码:def predictPartyVictory(self, senate): s=senate i=0 n=len(s) while i<n: #当前是D队的情况 if s[i]=='D': #如果还剩对方的人 剔除对方的第...原创 2020-12-11 20:42:23 · 84 阅读 · 0 评论 -
LeetCode 62.不同路径
LeetCode 62.不同路径思路一:m 行 n 列和 n 行 m 列的路线种数是一样的 (约定将小的数作为行)1行n列 只有一条路线2行n列 有n条路线 可以理解为一直向右走 途中有 n 次向下走的机会 所以一共有 n 条可能路线3行n列(补个图)代码:def hanshu(m,n): if m==1: return 1 elif m==2: return n elif m==3: ...原创 2020-12-10 17:49:12 · 150 阅读 · 0 评论