数据结构与算法
记录Leetcode刷题的心得体会。
在风暴的中央
COMAC后端开发工程师,硕士毕业于UCL MSc SDIC。
展开
-
每日一题:Leetcode面试题51.数组中的逆序对
题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5限制:0 <= 数组长度 <= 50000题解:题目难度:困难解题思路:终于准备搞一搞Leetcode里的Hard题了。本题是一道归并排序的典型题。题目理解起来十分容易,但想要在面试的时...原创 2020-03-20 21:50:45 · 783 阅读 · 0 评论 -
每日一题:Leetcode面试题16.数值的整数次方
题目描述:实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 ...原创 2020-03-18 14:57:24 · 260 阅读 · 0 评论 -
每日一题:Leetcode 面试题13.机器人的运动范围
题目描述:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人...原创 2020-03-03 10:56:39 · 658 阅读 · 0 评论 -
每日一题:Leetcode 面试题 29.顺时针打印矩阵
题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <...原创 2020-03-02 22:31:52 · 378 阅读 · 0 评论 -
每日一题:Leetcode 面试题63.股票的最大利润
题目描述:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2:输入: [7,6,4,3,...原创 2020-02-27 23:26:51 · 475 阅读 · 0 评论 -
每日一题:Leetcode 面试题47. 礼物的最大价值
题目描述:在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价...原创 2020-02-25 18:09:00 · 675 阅读 · 0 评论 -
每日一题:Leetcode面试题 64.求1+2+...+n
题目描述:求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000题解:题目难度:中等解题思路:又来水题解了本题虽然多了很多限制,但本质上仍是等差数列求和问题,所...原创 2020-02-23 22:25:40 · 247 阅读 · 1 评论 -
每日一题:Leetcode 面试10-1. 斐波那契数列
题目描述:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:10000000...原创 2020-02-22 22:09:43 · 297 阅读 · 0 评论 -
每日一题:Leetcode 53.最大子序和
背(fei)景(hua):书接上回,自从张小胖同学成功AC了Leetcode 1.两数之和这道题后,便觉得自己特别牛批。这天,他又信心满满地来到了Leetcode题库,准备大战一番。这时,一行“最长子序列和”突然映入张小胖的眼帘:题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [2,-4,3,-1,2,-4,3...原创 2020-02-20 22:18:05 · 278 阅读 · 0 评论 -
每日一题:Leetcode 1.两数之和
题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]题解:题...原创 2020-02-19 01:03:37 · 2629 阅读 · 0 评论 -
每日一题:Leetcode 57.移除元素
题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前...原创 2020-02-18 23:24:36 · 227 阅读 · 0 评论 -
每日一题:Leetcode 66.加一
题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。题...原创 2020-02-18 00:16:51 · 273 阅读 · 0 评论 -
每日一题:Leetcode 9.回文数
题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。题解...原创 2020-02-16 19:21:55 · 569 阅读 · 0 评论 -
每日一题:Leetcode 7.整数翻转
题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。题解题目难度:简单...原创 2020-02-16 17:45:57 · 340 阅读 · 0 评论