LeetCode
线上幽灵
大道至简
展开
-
找出数组中每个数的右边第一个比它大的数
vector<int> findMax(vector<int> num){ if(num.size()==0) return num; vector<int> res(num.size()); int i=0; stack<int> s; while(i<num.size()) ...转载 2018-08-17 21:59:28 · 3518 阅读 · 0 评论 -
Remove Duplicates from Sorted List I and II
题目1: Given a sorted linked list, delete all duplicates such that each element appear only once. Example 1:Input: 1->1->2Output: 1->2Example 2:Input: 1->1->2->3->...原创 2018-08-29 20:40:17 · 121 阅读 · 0 评论 -
Word Search
题目: Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally or ...原创 2018-08-29 19:07:10 · 168 阅读 · 0 评论 -
Combinations
题目: Given two integers n and k, return all possible combinations of k numbers out of 1 … n. Example: Input: n = 4, k = 2Output:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]代...转载 2018-08-29 10:58:11 · 250 阅读 · 0 评论 -
打印从1到最大的n位数
题目: 输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999。解析:由于不知道n的大小,有可能n很大,如果用数字打印,会出现溢出的情况,只能字符串打印。代码:void increaseOne(string &str){ int size = str.size(); int carry = 1...原创 2018-08-24 10:34:45 · 281 阅读 · 0 评论 -
机器人的运动范围
题目: 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子? 代码:class Sol...原创 2018-08-24 10:00:36 · 106 阅读 · 0 评论 -
并查集详解 ——图文解说,简单易懂
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,HDU1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断...转载 2018-08-25 16:16:02 · 5874 阅读 · 8 评论 -
删除无效的括号
题目: 删除最小数量的无效括号,使得输入的字符串有效,返回所有可能的结果。 说明: 输入可能包含了除 ( 和 ) 以外的字符。 Example 1:Input: "()())()"Output: ["()()()", "(())()"]Example 2:Input: "(a)())()"Output: ["(转载 2018-09-05 22:18:41 · 1954 阅读 · 0 评论 -
permute I and II
题目1: Given a collection of distinct integers, return all possible permutations. Example:Input: [1,2,3]Output:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]代码1:...原创 2018-08-30 11:34:22 · 338 阅读 · 0 评论 -
Subsets I and II
题目1: Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solution set must not contain duplicate subsets.Example: Input: nums = [1,2,3]Outpu...原创 2018-08-30 11:32:22 · 159 阅读 · 0 评论 -
LRU Cache
题目: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and put. get(key) - Get the value (will always be positive) of t...转载 2018-09-05 00:15:21 · 105 阅读 · 0 评论 -
字符串的排列
题目: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解析:基于回溯法思想:代码:class Solution {public: vo...转载 2018-08-25 20:14:01 · 126 阅读 · 0 评论 -
序列化二叉树
题目: 请实现两个函数,分别用来序列化和反序列化二叉树 代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { ...转载 2018-08-25 19:33:42 · 154 阅读 · 0 评论 -
求水洼的问题——深度优先算法
解析:遇到这个题的时候,不太容易快速的想到思路;可能会比较容易想到使用递归的思想; 但是具体怎么写呢? 直接求有几个区域不好求,那么我们换个思路来求,这种题就是这样,直接求不好求,但是当我们转换一下思路之后就豁然开朗;我们遍历所有的点,当遇到有水的点时,就将它周围的(八个方向)所有的水点都消除;所以在主遍历for循环中遇到几个水点就是有几个水洼;代码:#include<...转载 2018-08-25 17:23:28 · 2643 阅读 · 0 评论 -
一个图的连通子图个数
题目: 给出一个无向图,输出图中连通分支的个数。无向图的连通分支是一个子图,因此在子图两个节点之间至少存在一个路径。 Example:输入:给出一个连通图的二维数组0100010100010000000000000输出:联通子图的个数解析:从二位数组的第一行开始遍历,只遍历上三角(因为无向图是对称的),遍历第i行如果map中没有i把i加入到map中,然后...转载 2018-08-25 16:36:14 · 7282 阅读 · 1 评论 -
交换链表中的两个结点
题目: 给你一个链表以及两个权值v1和v2,交换链表中权值为v1和v2的这两个节点。保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做。 注意:你需要交换两个节点而不是改变节点的权值 样例:给出链表 1->2->3->4->null ,以及 v1 = 2 , v2 = 4返回结果 1->4->3->2-&...转载 2018-08-31 09:52:49 · 10571 阅读 · 2 评论 -
Set Matrix Zeroes
题目: Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in-place.Example 1: Input: [ [1,1,1], [1,0,1], [1,1,1]]Output: [ ...原创 2018-08-28 12:45:44 · 120 阅读 · 0 评论 -
数据流中的中位数
题目: 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 代码:class Solution {public: vector<i...原创 2018-08-26 10:13:03 · 292 阅读 · 0 评论 -
Max Points on a Line
题目: Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. Example 1: Input: [[1,1],[2,2],[3,3]]Output: 3Explanation:^|| o...转载 2018-08-16 20:30:23 · 480 阅读 · 0 评论 -
Sum Root to Leaf Numbers
题目: Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. An example is the root-to-leaf path 1->2->3 which represents the number 123. ...原创 2018-08-16 14:19:52 · 112 阅读 · 0 评论 -
Binary Tree Maximum Path Sum
题目: Given a non-empty binary tree, find the maximum path sum. For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-chi...原创 2018-08-16 11:02:59 · 113 阅读 · 0 评论 -
链家提前批校招编程题——极差之和
题目: 给定一个长度为N的序列A1到AN, 求所有区间[L, R] (1<=L<=R<=N)的极差之和,其中区间[L, R]的极差定位为A1到AR中最大值与最小值之差输入: 第一行包含一个整数N,1<=N<=10^5 第二行包含N个空格隔开的整数A1到AN,1<=Ai<=10^5输出: 输出所有区间的极差之和...原创 2018-08-18 21:32:47 · 874 阅读 · 1 评论 -
实现只有0、1、2三种元素的排序
题目: 一个数组只有0,1,2,如何把0放首位,1放后面,2放中间 example: 输入:[0, 1, 2, 0, 1, 2] 输出:[0, 0, 2, 2, 1, 1]解析:假设,我们有三个指针:p0、p1、p2。p0从左侧开始,指向第一个非0的数字;p1从右侧开始,指向第一个非1的数字。p2从p1开始遍历,如果是2,p2继续遍历,直到p2遇到1或者3...原创 2018-08-18 14:28:34 · 1389 阅读 · 0 评论 -
Path Sum II
题目: Given a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum. Note: A leaf is a node with no children.Example:Given the below binary tree and...原创 2018-08-15 22:30:22 · 97 阅读 · 0 评论 -
Minimum Depth of Binary Tree
题目: Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. Note: A leaf is a node...原创 2018-08-15 21:52:54 · 120 阅读 · 0 评论 -
Ugly Number II
题目: Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. Example: Input: n = 10Output: 12Explanation: 1, 2, 3, 4,...转载 2018-08-19 22:01:38 · 113 阅读 · 0 评论 -
Perfect Squares
题目: Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n. Example 1: Input: n = 12Output: 3 Explanatio...转载 2018-08-19 23:37:03 · 265 阅读 · 0 评论 -
求二叉树中节点间的最大距离
题目: 求二叉树中节点的最大距离Example: 上面二叉树的最大距离为5,路径为4-2-1-3-6-8解法:一个以h为头的树上,最大距离只可能来自以下三种情况 h的左子树上的最大距离h的右子树上的最大距离h左子树上离h.left最远的距离+1(h)+h右子树上离h.right最远的距离。三个值中最大的那个就是整棵h树中最远的距离。#incl...原创 2018-08-23 19:57:59 · 400 阅读 · 2 评论 -
二叉树中任意两个节点的距离
题目: 一个普通二叉树,如何找到两个给定节点之间的距离? ,其中二叉树中每个结点的值都不相同代码:#include &amp;amp;lt;iostream&amp;amp;gt;#include &amp;amp;lt;vector&amp;amp;gt;#include &amp;amp;lt;queue&amp;amp;gt;using namespace std;stru原创 2018-08-23 19:01:45 · 8103 阅读 · 4 评论 -
2018年拼多多校招笔试——拼出一个与输入的单词都不相同的单词
代码:#include<string>#include<iostream>#include<vector>#include<algorithm>#include<unordered_set>using namespace std;class Solution{public: string core(...原创 2018-08-30 23:11:37 · 1187 阅读 · 0 评论 -
求循环小数的开始位置和循环长度
题目: 给出被除数和除数,求出循环小数的开始位置(小数点之后的位数)和循环长度输入描述: 第一行包含两个数字分别是被除数a和除数b (1<= a, b <= 1000000)输出描述: 输出一行,包含一个两个数字,分别表示循环小数的开始位置和循环体的长度(无循环则开始位置为结束位置,长度为0)输入1 3输出0 1输入5 4输出...原创 2018-08-30 22:37:01 · 1811 阅读 · 0 评论 -
Edit Distance
题目: Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2. You have the following 3 operations permitted on a word: Insert a charac...转载 2018-08-17 12:21:00 · 419 阅读 · 0 评论 -
Count Complete Tree Nodes
题目: Given a complete binary tree, count the number of nodes. Example: Input: 1 / \ 2 3 / \ /4 5 6Output: 6代码:/** * Definition for a binary tree node. * s...原创 2018-08-17 10:36:30 · 145 阅读 · 0 评论 -
Restore IP Addresses
题目: Given a string containing only digits, restore it by returning all possible valid IP address combinations. Example: Input: "25525511135"Output: ["255.255.11.135", "255.255.111.35"]代码...转载 2018-08-22 17:30:06 · 259 阅读 · 0 评论 -
Word Break
题目:Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words.Note:...原创 2018-10-29 15:18:05 · 222 阅读 · 0 评论