LT算法刷题
文章平均质量分 66
jianafeng
这个作者很懒,什么都没留下…
展开
-
Leetcode腾讯算法题 -- 刷 出题指数为3颗星以上的题目 --第四部分
目录标题问题一:LT146. LRU 缓存机制先了解什么是LRU哈希表+链表实现缓冲问题二:LT394. 字符串解码题目三:LT:148. 排序链表题目四:23. 合并K个升序链表问题一:LT146. LRU 缓存机制先了解什么是LRULRU的英文全称是Least Recently Used,也即最不经常使用。我们看着好像挺迷糊的,其实这个含义要结合缓存一起使用。对于工程而言,缓存是非常非常重要的机制,尤其是在当下的互联网应用环境当中,起到的作用非常重要。为了便于大家更好地理解,我们从缓存的机制开始说原创 2021-07-21 00:26:03 · 290 阅读 · 1 评论 -
以往公司的面试题
题目一大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n≤39斐波那契数列很简单的公式,就是f(n) = f(n-1) + f(n-2)如果用代码写出来,就是我会用很简单的,轮流赋值来写首先写出完整斐波那契数列出来,直接法,不用递进法def Fibonacci(n): a,b,c = 0,1,0 ans = [0,1] while True: if c>n:return ans else原创 2021-05-21 22:26:39 · 115 阅读 · 0 评论 -
刷Leetcode的第二十天--字节笔试题
古生物血缘远近判定DNA 是由 ACGT 四种核苷酸组成,例如 AAAGTCTGAC,假定自然环境下 DNA 发生异变的情况有:基因缺失一个核苷酸基因新增一个核苷酸基因替换一个核苷酸且发生概率相同。古生物学家 Sam 得到了若干条相似 DNA 序列,Sam 认为一个 DNA 序列向另外一个 DNA 序列转变所需的最小异变情况数可以代表其物种血缘相近程度,异变情况数越少,血缘越相近,请帮助 Sam 实现获取两条 DNA 序列的最小异变情况数的算法。例子如下:输入:- 每个样例只有一行,两.原创 2021-05-07 22:19:45 · 335 阅读 · 0 评论 -
刷Leetcode的第二十一天
序言今天是刷LT的一天,好好干饭,好好努力,好好加油哦!给定一个整数 n,返回 n! 结果尾数中零的数量例子如下:输入: 3输出: 0解释: 3! = 6, 尾数中没有零输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零思路是 寻找多少个5 因为0是由5和2构成的 而偶数产生的2肯定比5多,所以寻找总共有多少个5的倍数 def trailingZeroes(self, n: int) -> int: #遍历寻找多少个5的倍数原创 2021-05-07 17:03:32 · 151 阅读 · 0 评论 -
刷Leetcode算法的第十八天
序言题目:公司安排2N个人参加面试。第i个人坐飞机飞到城市A的费用为costs[i][0],飞到城市B的费用为 costs[i][1]。返回安排好每个人都前往某城市面试的最低费用,A、B城市各有N个人参加例子:...原创 2021-05-05 02:18:44 · 197 阅读 · 0 评论 -
刷Leetcode算法的第十七天
序言今天是刷LT的一天,好好干饭,好好努力,好好加油哦!Leetcode题目–576:出界的路径数给定一个 m × n 的网格和一个球。球的起始坐标为 (i,j) ,你可以将球移到相邻的单元格内,或者往上、下、左、右四个方向上移动使球穿过网格边界。但是,你最多可以移动 N 次。找出可以将球移出边界的路径数量。答案可能非常大,返回 结果 mod 109 + 7 的值。例子如下:输入: m = 2, n = 2, N = 2, i = 0, j = 0输出: 6方法一:动态规划class原创 2021-05-02 19:07:06 · 128 阅读 · 1 评论 -
刷Leetcode算法的第十五天
序言比较经典的迷宫问题:由空地(用 0 表示)和墙(用 1 表示)组成的迷宫 maze 中有一个球。球可以途经空地向 上、下、左、右 四个方向滚动,且在遇到墙壁前不会停止滚动。当球停下时,可以选择向下一个方向滚动。给你一个大小为 m x n 的迷宫 maze ,以及球的初始位置 start 和目的地 destination ,其中 start = [startrow, startcol] 且 destination = [destinationrow, destinationcol] 。请你判断球能原创 2021-04-29 18:32:11 · 404 阅读 · 0 评论 -
刷Leetcode算法的第十六天
序言DFS-深度优先搜索算法,用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。 本质其实是递进的思想。用几个简单的题目来理解DFS题目:给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。例子如下:输入: 1 1 / \ / \原创 2021-04-29 02:28:34 · 82 阅读 · 0 评论 -
刷Leetcode算法的第十四天
序言BFS算法–广度优先搜索BFS是广度优先搜索算法。图形搜索算法。从根节点出发 沿着树的宽度遍历树的节点,等发现目标,则终止先用字典录入每一个节点,以及相连的其他节点;如下:dic = {"A";["B","C"],"B":["A","C","D"],"C":["A","B","D","E"],"D":["B","C","E","F"],"E":["C","D"];"F":["D"]}#开始定义BFSdef bfs(dic, start): queue = [] #动态的原创 2021-04-28 17:07:49 · 117 阅读 · 0 评论 -
刷PDD笔试题--编程
序言这几天开始刷PDD的一些算法题,有一起的找实习的小伙伴么哈哈哈 一起加油呀!!多多鸡有N个魔术盒子(编号1~N),其中编号为i的盒子里有i个球。多多鸡让皮皮虾每次选择一个数字X(1 <= X <= N),多多鸡就会把球数量大于等于X个的盒子里的球减少X个。通过观察,皮皮虾已经掌握了其中的奥秘,并且发现只要通过一定的操作顺序,可以用最少的次数将所有盒子里的球变没。那么请问聪明的你,是否已经知道了应该如何操作呢?思路是 比如5的话,就是需要操作三次,减去3 减去 2 减去 1那原创 2021-04-27 18:26:45 · 486 阅读 · 0 评论 -
刷Leetcode算法的第十三天
序言这次刷拼多多编程的笔试题题目:小多想在美化一下自己的庄园。他的庄园毗邻一条小河,他希望在河边种一排树,共 M 棵。小多采购了 N 个品种的树,每个品种的数量是 Ai (树的总数量恰好为 M)。但是他希望任意两棵相邻的树不是同一品种的。小多请你帮忙设计一种满足要求的种树方案输入解释:第一行包含一个正整数 N,表示树的品种数量。第二行包含 N 个正整数,第 i (1 <= i <= N) 个数表示第 i 个品种的树的数量。输出要求:输出一行,包含 M 个正整数,分别表示第 i原创 2021-04-26 16:59:14 · 169 阅读 · 0 评论 -
刷Leetcode算法的第十二天
序言今天是刷LT的一天,好好干饭,好好努力,好好加油哦这几天准备好好刷二分法的相关LT题Leetcode题目:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去例子输入: 4输出: 2----------------输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。本题是一道常见的面试题,面试官一般会要求面试者在不使用x\原创 2021-04-24 01:49:46 · 111 阅读 · 0 评论 -
刷Leetcode算法的第十一天
序言今天是刷LT的一天,好好干饭,好好努力,好好加油哦Leetcode题目小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3例子输入:guess = [1,2,3], answer = [1,2,3]输出:3输入:guess = [2,2,3], an原创 2021-04-22 03:27:44 · 247 阅读 · 1 评论 -
刷Leetcode算法的第十天
序言今天是刷LT的一天,好好干饭,好好努力,好好加油哦Leetcode题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。例子:方法一:直接法输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] #直接用for loop把原创 2021-04-16 02:40:43 · 156 阅读 · 0 评论 -
刷Leetcode算法的第九天
序言今天是刷LT的一天,好好干饭,好好努力,好好加油哦Leetcode题目:实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点)例子输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f回忆之前关于Node的应用:https://blog.csdn.net/Jiana_Feng/article/details/114938468定义Node的code是原创 2021-04-02 18:07:46 · 103 阅读 · 1 评论 -
刷Leetcode算法的第八天
序言今天是刷LT的一天,好好干饭,好好努力,好好加油哦!Leetcode题目:给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按任意顺序 返回答案例子输入:nums = [1,2,1,3,2,5]输出:[3,5]输入:nums = [-1,0]输出:[-1,0]输入:nums = [0,1]输出:[1,0]方法一 :利用set函数来做先创建一个空set(),然后遍历nums,如果num只重复一次的话,则会保留原创 2021-03-28 22:01:01 · 141 阅读 · 1 评论 -
刷Leetcode算法的第七天
今天是刷LT的一天,好好干饭,好好努力,好好加油哦!Leetcode题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。例子输入: [2,2,3,2]输出: 3输入: [0,1,0,1,0,1,99]输出: 99方法一:set函数因为除了我们要找的数 其他的数都是出现了三次,即我们可以用set函数,收集所有unique的数字,然后用下列公式即可求出我们要找的单数:比如输入是 [a,a,a,b,b,b,c]3∗(a+b+c原创 2021-03-25 06:28:02 · 168 阅读 · 2 评论 -
刷Leetcode算法的第六天
今天是刷LT的一天,好好干饭,好好努力,好好加油哦lleetcode题目:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度例子输入:nums = [3,2,2,3], val = 3输出:2输入:nums = [0,1,2,2,3,0,4,2], val = 2输出:5这里也是用到pop函数,遍历nums的元素,如果元素与val一致,则pop走该元素。pop() 函数用于移除列表中的一个元素(默认最后一个元素)并且返原创 2021-03-20 18:32:41 · 87 阅读 · 0 评论 -
刷Leetcode算法的第五天
今天是刷LT的一天,好好干饭,好好努力,好好加油哦leetcode题目:给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词,如果不存在最后一个单词,请返回 0例子:输入: "Hello World"输出: 5这道题比较简单,直接用split()的,分开字符串,再返回最后一个字符的长度#直接return最后一个单词的长度def lengthOfLastWord(s:str)->int:原创 2021-03-18 15:58:42 · 109 阅读 · 0 评论 -
刷Leetcode算法的第四天
今天是刷LT的一天,好好干饭,好好努力,好好加油哦!Leetcode题:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度例子输入:nums = [1,1,2]输出:2输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5删除重复的元素,一般使用双指针的方法。双指针的理解:有两个指针,在前的指针记为p,在后的指针记为q。首先,比较 p 和 q 位置上的元素是否相等如果相等,则q 后移 1 位如果不相等,将 q原创 2021-03-17 02:19:34 · 226 阅读 · 2 评论 -
刷Leetcode算法的第三天
今天是刷LT的第一天,好好干饭,好好努力,好好加油哦!leetcode题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置例子如下:输入: [1,3,5,6], 5输出: 2输入: [1,3,5,6], 2输出: 1输入: [1,3,5,6], 7输出: 4方法一:直接法首先,这道题可能会出现的情况只有四种:(1)目标值安插在所有数字的最前面(2)目标值与列表的某一个数字相等(3)目标值安插在列表里的两原创 2021-03-14 20:44:20 · 98 阅读 · 0 评论 -
刷Leetcode算法的第二天
今天是刷LT的第一天,好好干饭,好好努力,好好加油哦!leetcode题目3:检查是否所有括号都已配对。即是否刚好完全配对好左括号必须用相同类型的右括号闭合左括号必须以正确的顺序闭合例子如下:输入:s = "([)]"输出:false输入:s = "()[]{}"输出:true首先将所有的括号符号列出来,作为一个配对dic = {’{’: ‘}’, ‘[’:’]’, ‘(’:’)’,’?’:’?’}要检查是否所有的括号都配对好,首先是先把一开始出现的符号 收集在在一个列表,原创 2021-03-12 23:45:33 · 110 阅读 · 0 评论 -
刷Leetcode算法的第一天
序言今天是刷LT的第一天,好好干饭,好好努力,好好加油哦!第一题题目描述:找到几个字符串中最长公共前缀。例子如下:Input: ["flower","flow","flight"]Output: "fl"Input: ["dog","racecar","car"]Output: ""解析思路:这里需要使用的的是zip函数和set函数,先理解这两个函数的用法再做这道题。(1) zip() vs zip(*)zip()函数作用于可迭代的对象,将对象对应的元素组成一个个元组,然原创 2021-03-11 06:53:59 · 134 阅读 · 0 评论