leetcode

Leetcode 刷题

陌路散爱 提交于 2019-11-29 11:18:11
Leetcode 9. 回文数 Leetcode 125. 验证回文串 Leetcode 204. 计数质数 Leetcode 206. 反转链表 Leetcode 429. N叉树的层序遍历 Leetcode 589. N叉树的前序遍历 Leetcode 590. N叉树的后序遍历 来源: CSDN 作者: 斵冰且行 链接: https://blog.csdn.net/moonspiritacm/article/details/100578823

LeetCode刷题之旅正式开始

那年仲夏 提交于 2019-11-29 11:17:26
开学三个多月了,但没写过多少代码,感觉再这样下去就废了。所以今天开始LeetCode刷题。这篇文章算是一个刷题的开端,主要写写为什么选择leetcode刷题,怎样刷题等问题。 1.为什么刷题? 我觉得要想成为一名合格的程序员需要具备这么几块能力: 计算机基础知识:主要包括计算机专业本科学的一些课程,如《计算机网络》,《计算机组成原理》,《操作系统》,《数据库原理》等; 良好的数据结构和算法能力; 编程能力:也就是对编程语言的熟练度,比如python,java,c++等; 其他工具的使用:比如Linux和Mysql等数据库; 数学能力:包括微积分,概率论与数理统计,线性代数等。 专业领域知识:机器学习,深度学习等。 刷题能让我锻炼以上能力中的数据结构和算法的能力以及编程能力。因为leetcode中的题目需要用编程语言,比如python,java,c++等来实现,但高效快速的解决问题的方法、步骤则需要数据结构和算法的支撑。因此,刷题对我这两方面能力的提升显而易见。 2.怎样刷题? 首先,想要正确编写代码并成功提交需要熟练使用一门编程语言,我主要学习的是python,在使用python解决问题的时候,我肯定会用到一些我没有用过的方法,函数。当遇到比较好的函数的时候,我会把它记录下来,然后 将这个函数相关的知识点和使用方法整理成一篇博文记录下来 ,以备后续的复习巩固。 其次

Leetcode刷题修炼手册

你。 提交于 2019-11-29 11:17:06
“跟着我左手右手一个二叉树,堆栈链表反转换不同风格” 对于各位读研或者找工作的同学来说,Leetcode可能是无法绕过去的一个坎,很多公司的技术类岗位会从题库中抽题。此外,刷leetcode对于提高我们对数据结构与算法的应用和理解能力也有很大帮助,相信不少题友也是痛并快乐着。 同样将开始leetcode征程的我,特意整理了一套Leetcode刷题修炼手册,对于还没有开始或者正处于迷茫的同学可以起到一些帮助。里面有四种不同的刷题策略,欢迎自行对号入座。 一、刷题选择 盲目刷题不可取,因此,刷题要一定要搞清楚刷题的目的和原因。其实无外乎4种: 如果想提升自己的思维能力,可以按照AC率由低到高二分查找匹配自己当前水平难度的题目,然后适当挑战高难度题(二分时间复杂度是O(logn),至少比从易到难的O(n)节省时间) 如果想巩固某一专题,那自然应该按照tag来刷题,但是因为所用的方法在求解前已知,不太利于思维能力的提升 如果什么都不懂,那么建议随机刷题,一来可以涨见识,二来进步空间比较大 如果想提高AC率或者增加自信,那么建议刷水题 人与人之间还是有天赋差别的,但区别在于经验可以慢慢积累、再有个建议,题目如果太难超过当前自己能力的话,尝试一定时间后还是老老实实看题解吧 二、刷题方法 方法一:顺序法 建议未刷过题的新人按着顺序(AC)来。前 150 题覆盖了很多经典题目和知识点,指针法类如

LeetCode 456. 132 Pattern——LeetCode刷题记录

徘徊边缘 提交于 2019-11-29 11:16:48
于是我要开始做俗之又俗的leetCode刷题记录了。 一方面是贡献给大家题目的解,另一方面是督促自己刷题,希望每天都有至少一篇刷题的记录。 题目基本上都是leetCode的medium或者hard题,easy题目看看就行。 今天先来一发水水的题目~ leetcode456. 132 Pattern Given a sequence of n integers a 1 , a 2 , ..., a n , a 132 pattern is a subsequence a i , a j , a k such that i < j < k and a i < a k < a j . Design an algorithm that takes a list of n numbers as input and checks whether there is a 132 pattern in the list. Note: n will be less than 15,000. 大致意思是给一个整数数列,问其中有没有这样的子序列: a i , a j , a k ( i < j < k )并且 a i < a k < a j,有的话返回true,没有的话返回false。 一开始考虑的是,完全遍历每一个三元组,查看是否符合要求,但是这种方法显然时间复杂度为O(N3)

如何使用leetcode刷题

折月煮酒 提交于 2019-11-29 11:16:25
如何使用leetcode刷题 依据频率推荐的题目 以下内容节选自 https://blog.csdn.net/lnho2015/article/details/50962989 : 1. LeetCode的题库越来越大,没有时间也没有必要把所有题目都做一遍。刷个100题左右应该就差不多了(可以考虑序号为前100多的题目,相对更经典一点)。 2. 从AC率高的开始做,难度从简单->中等。 3. 可以按照下文的面试出题频率顺序来做,从频率最高的一批开始。 4. 尽量不使用IDE,直接在平台上写代码。 5. 不要看标签。标签相当于问题的分类,看了标签就会往那个方向去想,不利于自主思考。 6. 写好代码先不要提交,人工检查一下代码,比如分号是否都有写,return有没少等等。 7. 人工检查完后使用“Custom Testcase”功能自定义测试用例,注意检查边界,然后“Run Code”,这步可以发现蛮多问题的。 8. 等RunCode通过后,再去提交。 刷题顺序: 出现频度为5: 1. Leet Code OJ 1. Two Sum [Difficulty: Easy] 2. Leet Code OJ 8. String to Integer (atoi) [Difficulty: Easy] 3. Leet Code OJ 15. 3Sum [Difficulty: Medium]

关于leetcode刷题详细介绍

我们两清 提交于 2019-11-29 11:15:09
  虽然刷题一直饱受诟病,不过不可否认刷题确实能锻炼我们的编程能力,相信每个认真刷题的人都会有体会。现在提供在线编程评测的平台有很多,比较有名的有 hihocoder,LintCode,以及这里我们关注的 LeetCode。 LeetCode收录了许多互联网公司的算法题目,被称为刷题神器,我虽然早有耳闻,不过却一直没有上面玩过。   据了解,LeetCode 是一个非常棒的 OJ(Online Judge)平台,收集了许多公司的面试题目。相对其他 OJ 平台而言,有着下面的几个优点: 题目全部来自业内大公司的真实面试 不用处理输入输出,精力全放在解决具体问题上 题目有丰富的讨论,可以参考别人的思路 精确了解自己代码在所有提交代码中运行效率的排名 支持多种主流语言:C/C++,Python, Java 可以在线进行测试,方便调试 笔者刷leetcode的主要目的 1、熟悉各互联网公司的算法题目,为找工作做准备。 2、复习以前学过的编程语言,LeetCode支持几乎所有主流编程语言,大家可以用不同语言来做题。 3、熟悉常见的算法和数据结构,LeetCode提供了交流平台,一些大神会将自己的解法贴出来共享,有些巧妙的解法实在令人叫绝。 4、学习别人的编程思维,加快编程的速度,避免常见的BUG。   另外LeetCode的题型都非常简单明了,并不需要的复杂的理解

leetcode刷题方法指南

拈花ヽ惹草 提交于 2019-11-29 11:14:40
可以先刷高频前100个: https://leetcode.com/problemset/top-100-liked-questions/ 或者面试高频类: https://leetcode.com/problemset/top-interview-questions/ 字节跳动(头条)常考题: https://leetcode-cn.com/explore/interview/card/bytedance/ 腾讯2018秋招常考题: https://leetcode-cn.com/problemset/2018-50/ 也可以针对哪个公司常考题刷,也可以分类别刷,比如动态规划 不好就多刷几道。 或者暴力刷(推荐有很长刷题时间)。 转载自: LeetCode Question Difficulty Distribution 1 Two Sum 2 5 array sort set Two Pointers 2 Add Two Numbers 3 4 linked list Two Pointers Math 3 Longest Substring Without Repeating Characters 3 2 string Two Pointers hashtable 4 Median of Two Sorted Arrays 5 3 array Binary Search 5

[LeetCode] 913. Cat and Mouse 猫和老鼠

拈花ヽ惹草 提交于 2019-11-29 10:33:19
A game on an undirected graph is played by two players, Mouse and Cat, who alternate turns. The graph is given as follows: graph[a] is a list of all nodes b such that ab is an edge of the graph. Mouse starts at node 1 and goes first, Cat starts at node 2 and goes second, and there is a Hole at node 0. During each player's turn, they must travel along one edge of the graph that meets where they are. For example, if the Mouse is at node 1 , it must travel to any node in graph[1] . Additionally, it is not allowed for the Cat to travel to the Hole (node 0.) Then, the game can end in 3 ways: If

LeetCode 40. Combination Sum II

梦想与她 提交于 2019-11-29 08:09:21
问题链接 LeetCode 40. Combination Sum II 题目解析 给一组数和一个目标值,求和为目标值的组合。数组中的每个数最多只能取一次。 解题思路 本题与上一题 LeetCode 39. Combination Sum 十分相似,改变的条件是: 数组中每个元素最多只能取一次 。 在上一题中,我们是通过可以同一个起点(start)反复取同一个数得到结果,本题中为了避免重复,递归的时候起点+1,可以保证不取同一个数。 这样做了之后还不够,本题中隐藏了一个改变,那就是原数组中有重复的数字,所有得到的结果中依然有重复的。如何解决了?两个办法,第一从源头上解决问题,在循环中,递归之前先判断一下:if (i > start && num[i] == num[i - 1]) continue; 仔细想一下,这样并不会使最终结果有所缺失,因为每次循环表示:尝试取当前数,进行递归,两个相同的数不需要尝试两次。第二种方法是总结过res使用set类型,最后传结果时在强制转换成vector。 参考代码 class Solution { public: vector<vector<int>> combinationSum2(vector<int>& candidates, int target) { set< vector<int> > res; vector<int> answer;

LeetCode解题报告--Combination Sum

我与影子孤独终老i 提交于 2019-11-29 08:09:07
题目: Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. The same repeated number may be chosen from C unlimited number of times. Note: All numbers (including target) will be positive integers. Elements in a combination (a1, a2, … , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤ … ≤ ak). The solution set must not contain duplicate combinations. For example, given candidate set 2,3,6,7 and target 7, A solution set is: [7] [2, 2, 3] 题目链接: https://leetcode.com/problems/combination-sum/ 分析:题意给定一组数组,找出所有满足组合的元素和