每周算法打卡
文章平均质量分 51
记录打卡
i_lickey
这个作者很懒,什么都没留下…
展开
-
Week17算法打卡
题目:最大子序和 链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn3cg3/ 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 例1 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 例2 输入:nums = [1] 输出:1 例3 输入:nums = [0] 输出:原创 2021-07-29 18:48:24 · 56 阅读 · 0 评论 -
算法打卡Week16
题目:买卖股票最佳时期 链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 例1 输入:[7,1,5,3,6,4] 输出:原创 2021-07-14 12:31:46 · 73 阅读 · 0 评论 -
算法打卡Week15
题目:爬楼梯 链接:https://leetcode-cn.com/problems/climbing-stairs/ 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 例1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 例2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2原创 2021-07-05 12:10:00 · 113 阅读 · 0 评论 -
算法打卡Week14
题目:第一个版本错误 链接:https://leetcode-cn.com/problems/first-bad-version/ 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在原创 2021-06-29 11:25:48 · 99 阅读 · 1 评论 -
算法打卡Week13
题目:合并两个有序数组 链接:https://leetcode-cn.com/problems/merge-sorted-array/ 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。 例1 输入:nums1 = [1,2,3,0,0,0], m = 3, n原创 2021-06-23 11:06:46 · 96 阅读 · 0 评论 -
算法打卡Week12
题目:将有序数组转换成二叉搜素树 链接:https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/ 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树 例1 输入:nums = [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5原创 2021-06-17 12:20:19 · 56 阅读 · 0 评论 -
算法打卡Week11
题目:对称二叉树 链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn7ihv/ 给定一个二叉树,检查它是否是镜像对称的。 例1: 二叉树 [1,2,2,3,4,4,3] 是对称的 1 / \ 2 2 / \ / \ 3 4 4 3 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 思路: 判原创 2021-06-07 17:21:39 · 68 阅读 · 0 评论 -
算法打卡Week10
题目:二叉树的最大深度 链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnd69e/ 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 例: 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 思路: 运用递归的方法,算二叉树的最大深度可拆解为求每个节点下的深度,同一层节点取最原创 2021-06-01 12:04:40 · 48 阅读 · 0 评论 -
算法打卡Week9
题目:环形链表 链接:https://leetcode-cn.com/problems/linked-list-cycle/ 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。 如果链表中存在环,则返回 true 。 否则,返回 fal原创 2021-05-24 12:48:55 · 58 阅读 · 0 评论 -
算法打卡Week8
题目:删除链表的倒数第 N 个结点 链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 例一: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 例二: 输入:head = [1], n = 1 输出:[] 例三 输入:head = [1,2], n = 1 输出:[1] 思路: 我们采用双指针的方式,快指针listNode_fast和慢指针listNode_slow同时指向dum原创 2021-05-12 13:49:51 · 90 阅读 · 0 评论 -
算法打卡Week7
题目:最长公共前缀 链接:https://leetcode-cn.com/problems/longest-common-prefix/ 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 例一: 输入:strs = ["flower","flow","flight"] 输出:"fl" 例二: 输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。 思路一: 将每个字符串的对应位置的字符合成一起,进行比对 def原创 2021-04-29 15:24:23 · 98 阅读 · 0 评论 -
算法打卡Week6
题目一:实现strStr()函数 链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnr003/ 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。 例1: 输入:haystack = "hello", needle = "ll" 输出:2 例2: 输入:haystack = "aaa原创 2021-04-21 17:48:25 · 63 阅读 · 0 评论 -
算法打卡Week5
题目一:汉诺塔问题 链接:https://leetcode-cn.com/problems/hanota-lcci/ 在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制: (1) 每次只能移动一个盘子; (2) 盘子只能从柱子顶端滑出移到下一根柱子; (3) 盘子只能叠在比它大的盘子上。 请编写程序,用栈将所有盘子从第一根柱子移到最后一根柱子。 例1: 输入原创 2021-04-15 15:56:06 · 60 阅读 · 0 评论 -
算法打卡Week4
题目一:队内最大值 链接:https://leetcode-cn.com/problems/dui-lie-de-zui-da-zhi-lcof/ 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value 需要返回 -1 例1 输入: fun = ["MaxQueue","push_back","push_back","max_value"原创 2021-04-02 14:21:13 · 105 阅读 · 1 评论 -
算法打卡Week3
题一:每日温度 链接https://leetcode-cn.com/problems/daily-temperatures/ 请根据每日气温列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 对于题目的意思其实就是要寻找任一个元素的右边第一个比自己大的元素的位置,然后计算距离 例: IN: temperatures = [73, 74, 75, 71, 69, 72, 76, 73] OUT: [1, 1, 4, 2,原创 2021-03-23 18:08:54 · 89 阅读 · 0 评论 -
算法打卡Week2
题一 给你两个 ‘非空’ 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 链接:https://leetcode-cn.com/problems/add-two-numbers/ 例1 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 例2 输入:l1 = [0],原创 2021-03-17 15:32:20 · 145 阅读 · 4 评论 -
算法打卡Week1
题一:URL化 链接https://leetcode-cn.com/problems/string-to-url-lcci/ URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。) 例1: 输入:"Mr John Smith ", 13 输出:"Mr%20John%20Smith" 例2: 输入:" ", 5 输出:"%20%2原创 2021-03-10 18:28:16 · 103 阅读 · 2 评论