乘风破浪:LeetCode真题_015_3Sum】的更多相关文章

乘风破浪:LeetCode真题_015_3Sum 一.前言 关于集合的操作,也是编程最容易考试的问题,比如求集和中的3个元素使得它们的和为0,并且要求不重复出现,这样的问题该怎么样解决呢? 二.3Sum 2.1 问题 2.2 分析与解决     遇到这样的问题,我们更应该仔细想想如果使用暴力法的时间效率,可以发现是O(n~3)的时间复杂度,并且会出现重复过的,需要去除重复,这是非常让人难以忍受的,并且我们知道随着集合的增大,这样的代价非常的大.那么我们如何进行优化呢,这里就要仔细的想想如果我们在…
乘风破浪:LeetCode真题_041_First Missing Positive 一.前言 这次的题目之所以说是难,其实还是在于对于某些空间和时间的限制. 二.First Missing Positive 2.1 问题 2.2 分析与解决     读了题目我们或许还不理解题意,其实是说正常的数组应该是[1,2,3,4....]这样的数组,或者打乱次序的,但是对于不是这样的数组,我们需要从中找到从那个数字开始缺少的,这个数字就是最小的数字,比如2,3,4,那么缺少的就是1.比如1,2,4,就是…
乘风破浪:LeetCode真题_040_Combination Sum II 一.前言 这次和上次的区别是元素不能重复使用了,这也简单,每一次去掉使用过的元素即可. 二.Combination Sum II 2.1 问题 2.2 分析与解决 通过分析我们可以知道使用递归就可以解决问题,并且这次我们从头遍历一次就不会出现多次使用某一个元素了. class Solution { List<List<Integer>> ans; public List<List<Intege…
乘风破浪:LeetCode真题_039_Combination Sum 一.前言     这一道题又是集合上面的问题,可以重复使用数字,来求得几个数之和等于目标. 二.Combination Sum 2.1 问题 2.2 分析与解决 我们可以先将大于该数字的元素去除掉,之后取出一个元素,做减法,将得到的结果再放到集合中比较,直至最后减得结果为零则成功,为负数则失败回退.因此我们可以使用递归.堆栈.队列等来解决. public class Solution { public List<List<…
乘风破浪:LeetCode真题_038_Count and Say 一.前言     这一道题目,很类似于小学的问题,但是如果硬是要将输入和结果产生数值上的联系就会产生混乱了,因此我们要打破思维定势. 二.Count and Say 2.1 问题 2.2 分析与解决     这道题最难的其实是理解,因为描述的不尽其意,所以很难理解,其实就是根据最开始的字符串,不断的扩展,输入的N,代表的是经过N次之后的结果,与其中的结果没有任何关系. /** * 题目大意 * n=1时输出字符串1:n=2时,数…
乘风破浪:LeetCode真题_037_Sudoku Solver 一.前言 这次我们对于上次的模型做一个扩展并求解. 二.Sudoku Solver 2.1 问题 2.2 分析与解决     这道题让我们按照规则,填写数独表上的内容,并且已知假设答案是唯一的.这里我们直到一个3*3的方格内的数字不能重复,因此须要填写完成,就需要所有的数字,因此我们可以尝试使用图遍历中的深度优先和广度优先遍历来不断地试探,直到得到最后的结果.同样的递归也能达成上面的要求. class Solution { in…
乘风破浪:LeetCode真题_036_Valid Sudoku 一.前言 有的时候对于一些基础知识的掌握,对我们是至关重要的,比如ASCII重要字符的表示,比如一些基本类型的长度. 二.Valid Sudoku 2.1 问题 2.2 分析与解决 这样的问题可以说是比较简单了,我们只需要简单的按照规则进行检测就能得到相应的结果了,但是有没有更好一点的方法呢?我想应该是没有了. public class Solution { /** * 题目大意 * 验证一个数独棋盘是否合法,数独棋盘的验证规则见…
乘风破浪:LeetCode真题_035_Search Insert Position 一.前言 这次的问题比较简单,也没有限制时间复杂度,但是要注意一些细节上的问题. 二.Search Insert Position 2.1 问题 2.2 分析与解决 同样也可以使用二分查找和直接查找. public class Solution { /** * <pre> * 原题 * [1,3,5,6], 5 → 2 * [1,3,5,6], 2 → 1 * [1,3,5,6], 7 → 4 * [1,3,…
乘风破浪:LeetCode真题_034_Find First and Last Position of Element in Sorted Array 一.前言 这次我们还是要改造二分搜索,但是想法却有一点不一样. 二.Find First and Last Position of Element in Sorted Array 2.1 问题 2.2 分析与解决 查找问题,时间复杂度要求对数级别的,我们自然的想到了二分查找,和上一题一样,需求都是有点不一样的,这次是有重复的数字,找出某一特定的重…
乘风破浪:LeetCode真题_033_Search in Rotated Sorted Array 一.前言     将传统的问题进行一些稍微的变形,这个时候我们可能无所适从了,因此还是实践出真知,多练习多总结多思考. 二.Search in Rotated Sorted Array 2.1 问题 2.2 分析与解决     题目限制了时间复杂度为O(log(n)),刚遇到这个题目的时候我们可能会感到眩晕,因为如果是正常的二分查找算法我们当然可以很快的写出代码,但是这里因为是两节从小到大排序的…