自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

smart_ferry的博客

笨鸟的自学之路

  • 博客(70)
  • 收藏
  • 关注

原创 leetcode----229. Majority Element II

链接:https://leetcode.com/problems/majority-element-ii/大意:给定一个整数数组nums,要求找出数组中出现次数超过nums.length / 3次的所有数字。规定:使用时间复杂度为O(n),空间复杂度为O(1)的方法解决。例子:思路:全军覆没。思路参考链接:https://leetcode.com/problems/majo...

2019-04-30 15:42:55 227

原创 leetcode----228. Summary Ranges

链接:https://leetcode.com/problems/summary-ranges/大意:给定一个整数数组nums,要求找出nums中所有满足连续排列的区间数字。例子:思路:一次遍历数组,只需要记录一个前一个数字的值以及当前是否在遍历连续的排列。代码:class Solution { public List<String> summ...

2019-04-30 11:33:02 179

原创 leetcode----227. Basic Calculator II

链接:https://leetcode.com/problems/basic-calculator-ii/大意:实现一个计算器。给定一个字符串s,字符串s中的字符由'0'-'9'的数字以及'+'、'-'、'*'、'/'以及空格组成。要求求出字符串s所代表表达式的结果。例子:思路:构造两个栈,一个为操作数栈,里面存放操作数(整数);一个为操作符栈,里面存放四种运算符(字符)。...

2019-04-30 11:18:05 263

原创 leetcode----223. Rectangle Area

链接:https://leetcode.com/problems/rectangle-area/大意:分别给定两个矩形的左下角顶点坐标和右下角顶点坐标,格式为:对于矩形1:左下角顶点为(A,B),右上角顶点为(C,D)对于矩形2:左下角顶点为(E,F),右上角顶点为(G,H)求两个矩形的所覆盖的总面积。例子:思路:对两个矩形的关系分情况套路。情况一:两个...

2019-04-30 10:42:32 243

原创 leetcode----222. Count Complete Tree Nodes

链接:https://leetcode.com/problems/count-complete-tree-nodes/大意:给定一棵完全二叉树,求二叉树的节点数。例子:思路:任意一种遍历方法都可以解决。代码:class Solution { // 以任意一种遍历方法得到节点数 private int count = 0; public in...

2019-04-30 09:33:56 185

原创 leetcode----220. Contains Duplicate III

链接:https://leetcode.com/problems/contains-duplicate-iii/大意:给定一个整数数组nums,一个整数k,一个整数n。要求判断数组nums中是否存在不同的两个索引下标i和j,使得 |i - j| <= k 并且 |nums[i] - nums[j]| <= t。例子:思路:暂时没想到好方法,只能暴力法先解决了。...

2019-04-29 11:13:34 234

原创 leetcode----221. Maximal Square

链接:https://leetcode.com/problems/maximal-square/大意:给定一个只由'0'和'1'组成的二维字符数组,求出只由'1'组成的最大正方形的面积。例子:思路:采用动态规划解法。记dp[i][j]为以该点为正方形左下角时可得到的最大正方形边长若在某个位置[i,j]上的字符为'0',则dp[i][j] = 0;若在某个位置[i...

2019-04-29 10:10:23 138

原创 leetcode----216. Combination Sum III

链接:https://leetcode.com/problems/combination-sum-iii/大意:给定一个数k和一个数n,要求从1-9中找出k个不同的数,其和为n。求出所有这样的组合。注意:每个数字在一个组合内只能被使用一次。例子:思路:经典的回溯。具体思路看代码。代码:class Solution { public List<List...

2019-04-29 09:12:58 122

原创 leetcode----215. Kth Largest Element in an Array

链接:https://leetcode.com/problems/kth-largest-element-in-an-array/大意:给定一个无序且有重复数字的整型数组nums,要求找出第k大的数(k为有效数字,1 <= k <= nums.length)。例子:思路:基于堆的思想。维护一个大小始终为k的小根堆,当当前元素num大于堆顶元素时,将堆顶元素出堆,...

2019-04-28 10:56:33 166

原创 leetcode----211. Add and Search Word - Data structure design

链接:https://leetcode.com/problems/add-and-search-word-data-structure-design/大意:要求实现添加单词以及查找单词的数据结构及操作。其中,带查找的单词所含字符为'a'-'z'或者'.'。其中'.'可以代表任意一个小写字母。例子:思路:使用前缀树的数据结构:前缀树的实现,只不过是需要多处理一种'.'的情况。...

2019-04-28 09:38:39 191

原创 leetcode----209. Minimum Size Subarray Sum

链接:https://leetcode.com/problems/minimum-size-subarray-sum/大意:给定一个正整数数组nums以及一个正整数s,要求从nums找出最短的连续区间,使得区间内数字的和大于等于s,返回区间中元素的个数。规定:若找不到这样的区间,则返回0.例子:思路:记录两个指针变量start和curIdx,start表示当前所找区间的左端...

2019-04-26 09:34:43 332

原创 leetcode----208. Implement Trie (Prefix Tree)

链接:https://leetcode.com/problems/implement-trie-prefix-tree/大意:实现前缀树(也称为字典树)。规定:所有输入字符串的字符为'a' - 'z'。例子:思路:真是好巧,自己之前由于无聊实现了一把字典树,于是不假思索地写了出来。具体思路可以查看:Java实现字典树处理海量数据查重代码:class Trie ...

2019-04-26 09:02:54 152

原创 leetcode----207. Course Schedule

链接:https://leetcode.com/problems/course-schedule/大意:给定一个整数num为所需学习的课程数目,一个二维整数数组pre为修习课程的先决条件。若pre中某个一维数组为[0,1],则表示要学习0号课程,则必须先学习1号课程。规定:课程编号为0~num-1。现在要求判断是否有一种安排使得可以修习完所有课程。例子:思路:说的这么多,其...

2019-04-25 10:29:51 159

原创 leetcode----201. Bitwise AND of Numbers Range

链接:https://leetcode.com/problems/bitwise-and-of-numbers-range/大意:给定两个数m,n。满足:0 <= m <= n <= Integer.MAX_VALUE。要求求出区间[m,n]所有数依次与运算的结果。例子:思路:首先判断几种特殊情况:m == 0,则可以直接返回m(0) m == n,...

2019-04-25 09:40:29 163

原创 leetcode----200. Number of Islands

链接:https://leetcode.com/problems/number-of-islands/大意:给定一个二维字符矩阵grid,grid中的元素非'0'即'1'。记'1'为陆地,'0'为海域,统计岛屿的个数。岛屿的定义:被海域所围成的一片陆地称之为一个岛屿。规定:在grid四个边界被海域包围。例子:思路:这题的思路即找一个图中的连通子图的个数。使用dfs解决。具体...

2019-04-25 08:59:55 213

原创 leetcode----199. Binary Tree Right Side View

链接:https://leetcode.com/problems/binary-tree-right-side-view/大意:给定一棵树的根节点root,假设你站在树的最右边,要求找出你所能看到的节点(从上往下)。例子:思路:层次遍历,取每层的最右节点即可。代码:/** * Definition for a binary tree node. * publi...

2019-04-24 11:12:58 93

原创 leetcode----187. Repeated DNA Sequences

链接:https://leetcode.com/problems/repeated-dna-sequences/大意:给定一个DNA序列字符串s,字符串中每个字符为'A','C','G'或'T'。现在要求找出在s中连续子串长度为10,且在s中出现过一次以上的所有子串。例子:思路:使用两个set。set1用于存放s中所有长度为10的子串,set2用于存放出现过一次以上的长度...

2019-04-24 10:47:19 167

原创 leetcode----179. Largest Number

链接:https://leetcode.com/problems/largest-number/大意:给定一个整型数组nums,nums中每个元素都是非负数。要求对nums中各个元素进行一个组合,使得该组合后的数是所有组合得到的结果中最大的。例子:思路:可以使用基于交换的冒泡排序算法,记录字符串 s1 = "" + nums[i] + nums[i + 1],s2 = ""...

2019-04-24 09:35:03 134

原创 leetcode----173. Binary Search Tree Iterator

链接:https://leetcode.com/problems/binary-search-tree-iterator/大意:构造一棵BST的迭代器,迭代器通过往构造函数传入树根节点得到,实现迭代器的两个函数next()和hasNext(),用于获得迭代器的下一个元素以及判断是否有下一个元素。例子:思路:在构造迭代器时(构造函数内),使用一个list存储BST中序遍历,并...

2019-04-23 14:50:36 112

原创 leetcode----166. Fraction to Recurring Decimal

链接:https://leetcode.com/problems/fraction-to-recurring-decimal/大意:给定两个整数n和d,分别作为分子和分母,求出 n/d的小数形式,当小数有循环体时,使用“()”将循环体包围起来。例子:思路:解决此问题,主要需要注意以下几点:结果是否为0。即n是否等于0,若等于0,则直接返回"0" 可能出现整型溢出,所以...

2019-04-23 14:21:52 130

原创 leetcode----165. Compare Version Numbers

链接:https://leetcode.com/problems/compare-version-numbers/大意:给定两个表示版本的字符串version1和version2,比较两个版本的大小。规定:两个字符串都是非空且不会以'.'开始和结尾,且它们的每个字符都是数字或者'.','.'不代表小数点,而是表示上一个版本号。如果version1 > version2,则返回1;...

2019-04-23 11:22:14 167

原创 leetcode----152. Maximum Product Subarray

链接:https://leetcode.com/problems/maximum-product-subarray/大意:给定一个整型数组nums,数组中元素可正可负可为0.要求找出一个连续子数组,使得该子数组是所有子数组中各元素最大,返回最大的乘积。例子:思路:一开始感觉应该用动态规划来做,但是递推方程式始终没想出来。于是只能老老实实地做了...首先使用一个列表 ze...

2019-04-22 11:37:46 200

原创 leetcode----162. Find Peak Element

链接:https://leetcode.com/problems/find-peak-element/大意:返回一个数组的峰顶值所在的位置。一个数组的峰顶值:该值大于其左右两边相邻的两个元素。规定:nums[0]左边和nums[nums.length - 1]右边可以认为是Integer.MIN_VALUE。例子:思路:顺序遍历,找到第一个降序的点即可。代码:cl...

2019-04-22 10:28:53 147

原创 leetcode----153. Find Minimum in Rotated Sorted Array

链接:https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/大意:给定一个旋转数组(将某一升序数组以某一位置旋转而得)nums,要求找出数组中的最小值。规定:数组中没有重复的数字。例子:思路:可以采用二分查找的思路来做。首先是两种特殊情况:数组长度为1,直接返回nums[0] 数组已...

2019-04-22 09:57:17 100

原创 leetcode----151. Reverse Words in a String

链接:https://leetcode.com/problems/reverse-words-in-a-string/大意:给定一个字符串s,要求反转字符串中每个单词(即最后一个单词出现在第一位,...)。另外:反转后的单词最前面和最后面不能有空格,两个单词之间也不能有多余1个的空格。例子:思路:简单的字符串处理。首先使用s.trim()清除s两端的空白字符(这里是空格...

2019-04-21 13:48:16 141

原创 leetcode----150. Evaluate Reverse Polish Notation

链接:https://leetcode.com/problems/evaluate-reverse-polish-notation/大意:给一个逆波兰表达式tokens,求出该表达式的值。规定:逆波兰表达式中运算符只有 '+' '-' '*' '/' 例子:思路:使用一个操作数栈,遍历tokens。如果当前字符串可以对应一个整数,那将其转为整数并压入操作数栈中如果当...

2019-04-21 13:09:23 154

原创 leetcode----148. Sort List

链接:https://leetcode.com/problems/sort-list/大意:给定一个链表头结点head,要求使用时间复杂度O(nlogn),空间复杂度O(1)的方法对链表节点进行排序,并返回新链表的头节点。例子:思路:上一题使用插入排序对链表节点进行排序。规定了只能用插入排序,但是为了提升效率,之后也是使用了快排和归并排序做对比。经过上一题的洗礼,知道了...

2019-04-21 12:53:55 200

原创 leetcode----147. Insertion Sort List

链接:https://leetcode.com/problems/insertion-sort-list/大意:对一个链表进行插入排序,要求使用原地算法(即空间复杂度为O(1))。例子:思路:插入排序的链表实现。但是实现的效率并不高,原因可能就是插入排序时间复杂度太大的缘故。代码:/** * Definition for singly-linked list....

2019-04-19 10:48:02 149

原创 leetcode----144. Binary Tree Preorder Traversal

链接:https://leetcode.com/problems/binary-tree-preorder-traversal/大意:使用迭代方法先序遍历二叉树。例子:思路:二叉树先序遍历的迭代实现,使用栈。代码:/** * Definition for a binary tree node. * public class TreeNode { * ...

2019-04-19 09:24:01 95

原创 leetcode----143. Reorder List

链接:https://leetcode.com/problems/reorder-list/大意:给定一个链表 L0 -> L1 ->...->Ln,要求对链表进行重新排序,排序后为:L0->Ln->L1->Ln-1->... 例子:思路:第一个想到的肯定就是利用栈了。把每个节点依次添加到栈中,最后每次取首(start)尾(end...

2019-04-19 09:14:45 126

原创 leetcode----142. Linked List Cycle II

链接:https://leetcode.com/problems/linked-list-cycle-ii/大意:给定一个单链表的头结点,该链表可能有环,找出该链表环的入口节点。如果没有环,则返回空。例子:思路:使用快慢指针法。具体证明方法参考:快慢指针法找到链表环入口代码及证明代码:/** * Definition for singly-linked li...

2019-04-18 11:24:39 142

原创 leetcode----139. Word Break

链接:https://leetcode.com/problems/word-break/大意:给定一个字符串s,以及一个字典wordDict。判断s被进行n次分段后,每个分段的word是否都存在于wordDict。思路:首先想到的是一种使用dfs的方法,但是最终超时了。。。具体步骤为:使用一个256长度的TreeSet数组treeSets,每个元素都是TreeSet(T...

2019-04-18 11:12:45 179

原创 leetcode----138. Copy List with Random Pointer

链接:https://leetcode.com/problems/copy-list-with-random-pointer/大意:给定一个链表头结点head,该链表节点的域除了有单链表节点的域之外,还有一个random域,可指向任意一个节点(包括自身)。链表节点数据结构如下:class Node { public int val; public Node nex...

2019-04-18 08:43:03 234

原创 leetcode----137. Single Number II

链接:https://leetcode.com/problems/single-number-ii/大意:给定一个数组nums,数组中除了一个数字只出现了1次,其余数字都出现了3次。要求找出这个数字,最好时间复杂度为O(n),空间复杂度为O(1)。例子:思路:顺势而来的是一种使用32长度的整型数组思路。构造一个整型数组bytes。 bytes[i]意为nums中每个数的...

2019-04-17 11:04:34 202

原创 leetcode----134. Gas Station

链接:https://leetcode.com/problems/gas-station/大意:给定一个整型数组gas和一个整型数组cost。gas[i]意为:汽车到第i个位置时,可以加油gas[i]cost[i]意为:汽车从i地行驶至(i + 1) % cost.length 地时需要消耗汽油 。求从某一地起,满足可以顺时针行驶一周。规定:当找不到此地时,返回-1...

2019-04-17 10:04:06 185

原创 leetcode----133. Clone Graph

链接:https://leetcode.com/problems/clone-graph/大意:给定一个图节点node,要求深度复制整个图。给定图的数据结构如下:class Node { public int val; public List<Node> neighbors; public Node() {} public Node...

2019-04-17 09:41:19 174

原创 leetcode----131. Palindrome Partitioning

链接:https://leetcode.com/problems/palindrome-partitioning/大意:给定一个字符串s,要求给出s的所有切分情况,使得切分后的每个子串都是回文串。例子:思路:记录一个二维boolean数组p,p[i][j]意为s.substring(i, j + 1)是否为回文串。接下来就是基于上一步求得的boolean数组p使用回溯法...

2019-04-16 10:30:09 87

原创 leetcode----130. Surrounded Regions

链接:https://leetcode.com/problems/surrounded-regions/大意:给定一个二维字符数组board,board中每个字符都是'X'或者'O'。现在要求将所有被'X'包围'O'变为'X'。规定:在边界上的'O'默认不被'X'包围。例子:思路:图的DFS。利用DFS,将board的各个边界为'O'以及与其连接的'O'全部变为'#'(...

2019-04-16 09:49:26 157

原创 leetcode----129. Sum Root to Leaf Numbers

链接:https://leetcode.com/problems/sum-root-to-leaf-numbers/大意:给定一棵树根节点root,求出从根节点到每个叶子节点路径上数字组成的十进制数的和。例子:思路:先序遍历,回溯。遍历到一个节点时, 首先计算根节点到该节点路径上数字组成的十进制数,再判断当前节点是否为叶子节点即可。函数外部保存一个变量sum用于记录...

2019-04-16 08:59:26 101

原创 leetcode----127. Word Ladder

链接:https://leetcode.com/problems/word-ladder/大意:给定一个单词beginWord以及单词endWord,还有一个词典wordList。要求找出从beginWord转换为endWord的最短序列长度,且每次转换候的单词都必须是wordList中单词,且每次转换只能是两个仅有一位(且是同一位置)不同的字符串进行转换。例子:思路:df...

2019-04-15 14:48:59 167

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除