leetcode
文章平均质量分 64
patkritLee
practice makes perfect.
展开
-
102. Binary Tree Level Order Traversal(层次遍历)
题目链接:https://leetcode.com/problems/binary-tree-level-order-traversal/题意:Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).F原创 2016-10-04 17:35:13 · 390 阅读 · 0 评论 -
Valid Palindrome(回文字符串)
描述:Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.For example,"A man, a plan, a canal: Panama" is a palindrome."race a car"原创 2016-09-19 10:44:21 · 296 阅读 · 0 评论 -
LeetCode: Reorder List
Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values.For example,Given {1,2,3,4}, reorder it t原创 2016-09-19 10:03:05 · 334 阅读 · 0 评论 -
判断链表是否有环及找环
对应题一:141. Linked List CycleGiven a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?分析:最容易想到的方法,用一个哈希表unorderd_map visited,记录每个元素是否原创 2016-09-19 09:33:02 · 383 阅读 · 0 评论 -
ZigZag Conversion
原题链接:https://leetcode.com/problems/zigzag-conversion/原题题意:The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this patter原创 2016-09-06 10:38:01 · 326 阅读 · 0 评论 -
求最长回文子串(多种解法)
5. Longest Palindromic Substring save to favoriteQuestionEditorial Solution My SubmissionsTotal Accepted: 128401Total Submissions: 539109Difficulty: Medium原创 2016-09-05 17:10:51 · 701 阅读 · 0 评论 -
找出两个排序数组的中位数
#include "stdafx.h"#include using namespace std;/*找出两个排序数组的中位数输入:两个排序的数组输出:它们的中位数思路:中位数概念:一个长度为n的数组,如果n是奇数,则中位数在(n-1)/2处如果n是偶数,则中位数为(n-1)/2和n/2这两个数,我们一般取下分位(为了统一)则a和b的下中位数(分奇数偶数位)应该是合并后,有c原创 2016-08-07 23:00:30 · 725 阅读 · 4 评论 -
3. Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters.Examples:Given "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the answer is "原创 2016-09-04 13:11:07 · 344 阅读 · 0 评论 -
leetcode 2 : Add two numbers
Add Two NumbersYou are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and转载 2016-09-03 10:15:31 · 465 阅读 · 0 评论 -
后序遍历非递归
leetcode中有这么一道题,非递归来实现二叉树的后序遍历。二叉树的后序遍历顺序为,root->left, root->right, root,因此需要保存根节点的状态。显然使用栈来模拟递归的过程,但是难点是怎么从root->right转换到root。方法1:对于节点p可以分情况讨论1. p如果是叶子节点,直接输出2. p如果有孩子,且孩子没有被访问过,则原创 2016-08-30 23:15:13 · 453 阅读 · 0 评论 -
二叉树的任意两节点间的最大距离
1.问题定义如果我们把二叉树看成一个图,父子结点之间的连线看成是双向的,我们姑且定义“距离”为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个结点之间的距离2.解法计算一个二叉树的最大距离无外乎两种情况:A. 路径经过左子树的最深结点,再通过根节点,最后到右子树的最深结点。B. 路径不穿过根节点,而是左子树或右子树的最大距离路径,取其最大者。s原创 2016-08-09 15:02:53 · 5210 阅读 · 1 评论 -
Gas station
原题链接:https://leetcode.com/problems/gas-station/题意:There are N gas stations along a circular route, where the amount of gas at station i is gas[i].You have a car with an unlimited gas tank an原创 2016-09-11 11:22:21 · 385 阅读 · 0 评论 -
数组循环右移
设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。不合题意的解法如下:我们先试验简单的办法,可以每次将数组中的元素右移一位,循环K次。abcd1234→4abcd123→34abcd12→234abcd1→1234abcd。伪代码如下:代码清单2-33 RightShift(int* arr,原创 2016-08-08 19:35:54 · 529 阅读 · 0 评论 -
strstr()实现
题意:implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.题解:直接暴力解法,O(m*n)。class Solution {public: int strStr(原创 2016-09-19 10:56:15 · 342 阅读 · 0 评论 -
Palindrome Number(求一个数是否是回文整数)
原题地址:https://leetcode.com/problems/palindrome-number/原题题意:Determine whether an integer is a palindrome. Do this without extra space.解析:此题可以借用前面的题目:求回文串 的思路将一个int 转化为string,进而就变成了求回文串的 题目。clas原创 2016-09-06 15:06:11 · 442 阅读 · 0 评论 -
装水问题(求最大容量)
题目链接:https://leetcode.com/problems/container-with-most-water/题意:Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are dra原创 2016-09-06 21:04:46 · 2589 阅读 · 0 评论 -
150. Evaluate Reverse Polish Notation(逆波兰式)
题目链接:https://leetcode.com/problems/evaluate-reverse-polish-notation/题意:Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are +, -, *, /. Each operan原创 2016-10-04 17:09:18 · 439 阅读 · 0 评论 -
二叉树前序遍历和中序遍历及后续遍历非递归
1.前序遍历 非递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} *原创 2016-09-27 09:50:01 · 534 阅读 · 0 评论 -
矩阵相乘法(稀疏矩阵)
public class Solution { public int[][] multiply(int[][] A, int[][] B) { int[][] C = new int[A.length][B[0].length]; for(int i=0; i<A.length; i++) { for(int j=0;原创 2016-09-27 09:20:39 · 432 阅读 · 0 评论 -
leetcode Anagrams Group(回文构词 分组)
题目链接:https://leetcode.com/problems/anagrams/题意:Given an array of strings, group anagrams together.For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"], Return:[ ["ate", "eat"原创 2016-09-21 15:52:52 · 629 阅读 · 0 评论 -
Longest valid Parentheses(括号匹配长度问题)
原文地址:https://leetcode.com/problems/longest-valid-parentheses/题意:Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substr原创 2016-09-24 15:44:17 · 461 阅读 · 0 评论 -
leecode:countandsay(数列模拟)
题目链接:https://leetcode.com/problems/count-and-say/题意:The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...1 is read off as "one 1" or原创 2016-09-21 14:12:11 · 438 阅读 · 0 评论 -
Roman to Integer &&Integer to Roman
首先我们看下什么是Roman Interger罗马数字一共有7个,即I,V,X,L,C,D,M规则:重复次数:一个罗马数字重复几次,就表示这个数的几倍右加左减:在一个较大的罗马数字的右边记上一个较小的罗马数字,表示大数字加小数字。在一个较大的数字的左边记上一个较小的罗马数字,表示大数字减小数字。但是,左减不能跨越一个位数。比如,99不可以用IC表示,原创 2016-09-21 11:35:53 · 347 阅读 · 0 评论 -
strtod()函数
strtod()含义:将字符串转换成浮点数头文件:#include定义函数:double strtod(const char *nptr, char **endptr);函数说明:strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或者正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。若endptr不为NULL,则会原创 2016-09-21 10:28:31 · 1156 阅读 · 0 评论 -
Longest Common Prefix(最长公共前缀)
Write a function to find the longest common prefix string amongst an array of strings.题目链接:https://leetcode.com/problems/longest-common-prefix/思路:1.纵向扫描。从位置0开始,对每一个位置比较所有字符串,直到遇到一个不匹配。代码:cla原创 2016-09-20 20:55:40 · 546 阅读 · 0 评论 -
栈(括号匹配问题)
20. Valid Parentheses题目地址:https://leetcode.com/problems/valid-parentheses/题意:Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is原创 2016-09-23 18:36:06 · 482 阅读 · 0 评论 -
经典问题:最长回文子串
最长回文子串,非常经典的问题。题意:给定一个字符串,求其最长回文子串。解法一:暴力解法,找出字符串中的所有子串,【时间复杂度O(n^2)】然后求该子串是不是回文串【时间复杂度O(n),所以整个算法的时间复杂度是O(n^3)】,并记录其中最长子串的起始位置和长度。代码如下:class Solution {public: string longestPalindrome(stri原创 2016-09-20 11:15:01 · 494 阅读 · 0 评论 -
Add Binary
Given two binary strings, return their sum (also a binary string).For example,a = "11"b = "1"Return "100".对应leetcode上67题:https://leetcode.com/problems/add-binary/题解:此题不难,但是要写得精炼,还是要学习下原创 2016-09-20 09:41:55 · 389 阅读 · 0 评论 -
atoi函数实现
对应leetcode:String to Integer (atoi)Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and as原创 2016-09-20 08:52:37 · 354 阅读 · 0 评论 -
在1-10000中,有9998个数已知,找出未知的两个
先用公式n(n+1)/2算出1-10000的总和 , 用公式n(n+1)(2n+1)/6算出1-10000的平方和,然后扫描那9998个数,每扫到一个就从平方和中减去这个数的平方,扫描一个就从总和中减去这个数。 知道两个数的和和平方和,解方程组即可得出这两个数原创 2016-08-03 11:26:46 · 966 阅读 · 0 评论 -
复杂链表的复制
Q:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。请完成函数ComplexNode* Clone(ComplexNode* pHead),以复制一个复杂链表。A:一开始想这道题毫无思路,如果蛮来,首先创建好正常的链表,然后考虑sibling这个分量,则需要O(n^2)的时间复杂度,然后一个技巧便可以原创 2016-08-08 12:52:35 · 531 阅读 · 0 评论 -
Leetcode204 求素数个数
题意:给定一个非负整数N,求小于N的素数的个数。题解:我们知道,素数的倍数都不是素数,于是可以用这个原理来排除那些不是素数的数,剩下的也都是素数,这也叫打表法。另外这个题目不能用数组,开辟不了那么大的空间,可以借助vector,定义一个长度为n的字段。代码:class Solution {public: int countPrimes(int n) { int i,j,cnt=0; if (n原创 2016-02-05 09:36:19 · 615 阅读 · 0 评论 -
Leetcode205 同构字符串
题意:给定两个字符串s和t,求这两个字符串是否满足同构性。即一个字符的所有出现 都能用另一个字符代替,并且顺序不能改变。Given "egg", "add", return true.Given "foo", "bar", return false.Given "paper", "title", return true.思路:用两个哈希map>分别存储s原创 2016-02-04 15:16:45 · 800 阅读 · 0 评论 -
LeetCode219 查找相等两个数之间的最小距离
题意:给定一个vector类型的int序列以及int k,问这个序列中是否存在两个相等的数且两者之间的序号差不超过k。题解:做法一:使用unordered_map。哈希map是一种关联容器,通过键值和映射值存储元素。允许根据键值快速检索各个元素。在unordered_map中,键值一般用来唯一标识元素,而对应的值是一个对象关联到这个键的内容。键映射值的类型可能会有所不同。在内部un原创 2016-02-02 23:51:20 · 1208 阅读 · 0 评论 -
LeetCode 237 删除单链表中某一个结点
题意:现在要删除某一个单链表中的某一个结点,只已知这个结点,其他信息均不知。题解:假如给定:A->B->C->D->E->F 现在要删除C,但是并不知B,也就是不能通过B来删除C,但是我们知道D,那么我们就可以把D的信息复制给C,然后把D删除。代码如下:/** * Definition for singly-linked list. * struct ListNode { *原创 2016-02-01 21:56:11 · 662 阅读 · 0 评论 -
LeetCode278 二分查找
题目大意:有一个1-n的序列,其中中间从某一个数开始出现坏的状况,如果这个数坏了,后面所有的数都是坏的。判断一个数是否坏给定了API函数,让你设计一个算法,使得调用这个API isBadNumber()函数次数最少。题解:首先拿在手里,最容易想到的就是二分查找。1-----------------n,low=1;high=n;mid=low+(high-low)/2;此时当n为偶数时,mid为原创 2016-02-01 19:42:03 · 484 阅读 · 0 评论 -
LeetCode290 pattern string 解题报告
Given a pattern and a string str, find if str follows the same pattern.Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.原创 2016-01-31 17:18:32 · 500 阅读 · 0 评论 -
Leetcode 110 判断一颗二叉树是否是平衡二叉树
题解:根据平衡二叉树的定义,左右子树的高度差不超过1。用递归。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NUL原创 2016-02-13 20:32:09 · 553 阅读 · 0 评论 -
leetCode 112 二叉树路径求和问题
题意:给定一个二叉树和一个整数sum,问从根节点到叶子节点的所有路径中,是否有等于sum的。解:明显用递归来做,只要左右子树有一个返回true,那么总结果就是true。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *原创 2016-02-13 17:16:17 · 709 阅读 · 0 评论 -
Leetcode 118 根据行数输出杨辉三角形
题意:给定总行数numrows,输出所有行的 杨辉三角形题解: 0:1 1:1 1 2:1 2 1 3:1 3 3 1 4:1 4 6 4 1 5:1 5 10原创 2016-02-13 11:09:27 · 1049 阅读 · 0 评论