
Leetcode
菜到怀疑人生
这个作者很懒,什么都没留下…
展开
-
Leetcode水题——matrix
前言 第一次接触Leedcode,提交方式真的有点醉,一开始还吐槽没有数据规模输入来着............... 从中等难度开始水 Matrix 题解 这道题比较简单,分两步扫描,第一步,从左到右,从上到下扫描(这两个方向的值都是当前最小),选择左边与上面中的较小者加1,第二步,从右到左,从下到上扫描,选择右边与下面的较小者加一与matrix[x][y](即当前值)比...原创 2018-09-17 22:27:43 · 504 阅读 · 0 评论 -
Leetcode水题——3Sum
题目 题解 这题还是比较简单的,首先进行排序(对于没有按下标输出要求的题目,向考虑排序),排好序后,找第一个数,设第一个数下标为i,则第二个数从i+1开始找,因为i之前的数字的所有组合都已经找出来了,计算第一个数与第二数的和,取反,根据二分法查找,查找范围为第二个数的下标到数组结尾,另外当第一个数为正数时就可以退出了,因为正数后面都为正数,不可能为0,另外题目要求不能重复,一些边界条件还是...原创 2018-10-01 11:09:45 · 311 阅读 · 0 评论 -
水题——出现次数最多的数
题目描述: 解析: 这题比较好解决,由于已经排好序,因此遍历一遍即可,由于有序,意味着a[i]!=a[i-1],在之后都不会出现a[i-1]了,使用一个数字记录目前出现次数最多的数,需要注意n<0时是无解的 代码: #include<iostream> using namespace std; int main() { long long int n...原创 2018-09-25 22:53:55 · 456 阅读 · 0 评论 -
Leetcode水题——132模式
题目 题解 首先想到的是回溯法,但最坏算法复杂度为O(n^3),而且题目只需要判断是否存在,而回溯法会把所有可能都尝试一遍,接着想到贪心,首先找到一个区域中的最小值A(下标记为i),接着从i+1开始找到一个区域内的最大值B(下标记为j),从j+1开始找,寻找位于A与B之间的数,找到了,返回true,否则返回从j+1开始找下一个区域最小,这么做是为了保持最大的容错性,如下: 上图中A是...原创 2018-09-27 20:27:18 · 1333 阅读 · 0 评论 -
leetcode水题——2 Keys Keyboard
题目 题解 这道题比较简单,就是一个简单的回朔法,如果上一步是copy,则这一步只能是paste,如果上一步是paste,这一步可以是copy,也可以是paste,那么用一个布尔类型,来表示上一步是copy还是paste即可,代码比较粗糙 代码 class Solution { public: int getmin(bool weathercopy,...原创 2018-09-27 22:20:22 · 222 阅读 · 0 评论