算法
文章平均质量分 66
junchen1992
Be the change that you wish to see in the world.
展开
-
LeetCode #3: Longest Substring Without Repeating Characters
Problem Statement(Problem Link) 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"原创 2016-08-27 11:09:26 · 420 阅读 · 0 评论 -
HackerRank: Bricks Game
题目链接分析本题使用动态规划的思想解决。dp[i]表示:若player从当前位置开始,能获得的最大分数。很明显,需要逆序构建dp数组。代码(Python 2.7)t = int(raw_input())for t_i in xrange(t): n = int(raw_input()) a = map(int, raw_input().split()) cum_sum = [原创 2016-08-17 13:30:37 · 379 阅读 · 0 评论 -
HackerRank: Sam and sub-strings
题目链接分析考虑每一位数字对最终总和的贡献,画出表格分析小例子得到模式。代码s = raw_input()n = len(s)candies = 0mul = 1MOD = 1000000007for index in xrange(n - 1, -1, -1): candies = (candies + (ord(s[index]) - ord('0')) * mul *(ind原创 2016-08-17 18:30:07 · 530 阅读 · 0 评论 -
HackerRank: Equal
逆向思维:(1)题目问的是让我们“加”巧克力使得每个人最终巧克力数量一样。这等价于“减”巧克力使得每个人最终巧克力数量一样。(2)用“减”的方法,最终的目标是使得每个人的巧克力数量为原输入数组的最小值或者任意小于该值但不为负原创 2016-08-17 10:47:32 · 720 阅读 · 1 评论 -
HackerRank: Play with words
题目链接分析经典动态规划问题“最长回文子串(Longest Palindromic Subsequence)”的变形。动态规划#!/usr/bin/pythons = raw_input()n = len(s)dp = [[0 for i in xrange(n)] for j in xrange(n)]for i in xrange(n): dp[i][i] = 1for col i原创 2016-08-18 09:28:37 · 399 阅读 · 0 评论 -
LeetCode #312: Burst Balloons
Problem Statement(Source) Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it represented by array nums. You are asked to burst all the balloons. If the you burst ballo原创 2016-08-30 12:17:24 · 378 阅读 · 0 评论 -
LeetCode #99: Recover Binary Search Tree
Problem Statement(Source) Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure.Note: A solution using O(n) space is pretty straight forwar原创 2016-08-31 09:33:55 · 267 阅读 · 0 评论 -
LeetCode #382: Linked List Random Node
Problem Statement(Problem Link) Given a singly linked list, return a random node’s value from the linked list. Each node must have the same probability of being chosen.Follow up: What if the linked li原创 2016-08-29 09:06:40 · 472 阅读 · 0 评论 -
Remove duplicates from array (Python)
1. 给定一个list, 写一个函数去掉其中的重复元素(不需要保持原始相对顺序)。原创 2016-08-21 07:58:47 · 552 阅读 · 0 评论 -
LeetCode #132: Palindrome Partitioning II
Problem statementGiven a string s, partition s such that every substring of the partition is a palindrome. Return the minimum cuts needed for a palindrome partitioning of s.For example, given s = “aab”原创 2016-08-22 20:55:22 · 551 阅读 · 0 评论 -
LeetCode: 371. Sum of Two Integers
Original ProblemCalculate the sum of two integers a and b, but you are not allowed to use the operator + and -.Example:Given a = 1 and b = 2, return 3.Solutiondef原创 2016-08-22 07:15:42 · 230 阅读 · 0 评论 -
LeetCode #329: Longest Increasing Path in a Matrix
Problem Statement(Source) Given an integer matrix, find the length of the longest increasing path.From each cell, you can either move to four directions: left, right, up or down. You may NOT move diago原创 2016-08-31 20:45:13 · 399 阅读 · 0 评论 -
PIQ12: Find pivot in a sorted rotated array
Description: Given a sorted integer array which may have been rotated once, find the pivot index, i.e. index of the minimum element of the array.Approach 1: Naive Solutiondef pivot(nums): """ T原创 2016-08-22 13:39:37 · 320 阅读 · 0 评论 -
PIQ18: Delete middle node of a linked list
Problem statement Given a pointer to the middle node of the linked list, delete that node.Solution# Definition for singly-linked list.class ListNode(object): def __init__(self, x): self.v原创 2016-08-22 13:51:25 · 283 阅读 · 0 评论 -
PIQ19: Longest Common Substring
Problem Statement:Given two strings S1 and S2, find the longest common substring between S1 and S2.Approach 1: Dynamic Programmingdef LCS(s1, s2): """ Time complexity: O(n^2) Space complexi原创 2016-08-22 14:15:41 · 269 阅读 · 0 评论 -
PIQ39: Longest Common Subsequence
Problem StatementGiven two string s1 and s2. Find the longest common subsequence between s1 and s2.Link@HackerRank: The Longest Common Subsequencedef longest_common_subsequence(s1, s2): """Find the原创 2016-08-23 09:00:05 · 308 阅读 · 0 评论 -
PIQ26: Longest Palindromic Substring
Problem StatementGiven a string S, find the longest palindromic substring of S.def longest_palindromic_substring(s): if not s: return None n = len(s) lps, lps_len = s[0], 1 dp =原创 2016-08-23 09:46:27 · 216 阅读 · 0 评论 -
PIQ07: Longest Palindromic Subsequence
Problem StatementGiven a string S, Find the length of the longest palindromic subsequence.Approach 1Reverse S to T, then make use of the Longest Common Subsequence algorithm.Approach 2Dynamic programmi原创 2016-08-23 11:45:01 · 307 阅读 · 0 评论 -
PIQ03: Find Majority Element in an Array
Description: Given an array of size n, find the element which occurs more than n/2 times. This element is called Majority Element. If not found, return null.Approach 1: use a counterdef majority_elemen原创 2016-08-22 07:33:40 · 324 阅读 · 0 评论 -
LeetCode #41: First Missing Positive
Problem Statement(Source) Given an unsorted integer array, find the first missing positive integer.For example, Given [1,2,0] return 3, and [3,4,-1,1] return 2.Your algorithm should run in O(n) time原创 2016-09-13 13:14:39 · 218 阅读 · 0 评论 -
PIQ59: Find the missing number in the increasing sequence
Problem StatementGiven an increasing sequence of numbers from 1 to n with only one missing number, how can you find that missing number without traversing the sequence in linear fashion. In other words原创 2016-08-23 12:51:52 · 381 阅读 · 0 评论 -
PIQ60: Leaders in an array
Problem StatementGiven an array of integers, find the leaders in the array. A leader is an element which is larger than all the elements in the array to its right.SolutionUse a stack.def leaders(nums):原创 2016-08-23 14:33:50 · 287 阅读 · 0 评论 -
LeetCode #273: Integer to English Words
Problem Statement(Source) Convert a non-negative integer to its english words representation. Given input is guaranteed to be less than 231−12^{31} - 1.For example, 123 -> “One Hundred Twenty Three”原创 2016-09-02 14:59:24 · 256 阅读 · 0 评论 -
LeetCode #233: Number of Digit One
Problem StatementGiven an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.For example: Given n = 13, Return 6, because digit 1 occurred in原创 2016-09-02 20:01:32 · 280 阅读 · 0 评论 -
LeetCode #140: Word Break II
Problem Statement(Source)Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word.Return all such possible sentences.For examp原创 2016-09-03 13:07:28 · 278 阅读 · 0 评论 -
LeetCode #388: Longest Absolute File Path
Problem Statement(Source) Suppose we abstract our file system by a string in the following manner:The string "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext" represents:dir subdir1 subdir2 fil原创 2016-09-03 14:27:00 · 277 阅读 · 0 评论 -
LeetCode #87: Scramble String
Problem Statement(Source) Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively.Below is one possible representation of s1 = “great”: grea原创 2016-09-04 09:58:39 · 272 阅读 · 0 评论 -
LeetCode #188: Best Time to Buy and Sell Stock IV
Problem Statement(Source) Say you have an array for which the ithi^{th} element is the price of a given stock on day i.Design an algorithm to find the maximum profit. You may complete at most k transac原创 2016-09-04 11:42:56 · 231 阅读 · 0 评论 -
LeetCode #10: Regular Expression Matching
Problem Statement(Source) Implement regular expression matching with support for '.' and '*'.'.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cove原创 2016-09-04 12:45:36 · 222 阅读 · 0 评论 -
LeetCode #1: Two Sum
Problem Statement(Problem Link) Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution.E原创 2016-08-27 09:42:51 · 367 阅读 · 0 评论 -
LeetCode #167: Two Sum II - Input array is sorted
Problem Statement(Source) Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.The function twoSum should return indi原创 2016-09-16 17:35:10 · 210 阅读 · 0 评论 -
LeetCode #153: Find Minimum in Rotated Sorted Array
Problem Statement(Source) Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).Find the minimum element.You may assume no duplicate原创 2016-09-17 10:38:25 · 183 阅读 · 0 评论 -
LeetCode #162: Find Peak Element
Problem Statement(Source) A peak element is an element that is greater than its neighbours.Given an input array where num[i] ≠ num[i+1], find a peak element and return its index.The array may contain m原创 2016-09-17 11:00:40 · 197 阅读 · 0 评论 -
LeetCode #187: Repeated DNA Sequences
Problem Statement(Source) All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: “ACGAATTCCG”. When studying DNA, it is sometimes useful to identify repeated sequenc原创 2016-09-17 17:03:47 · 234 阅读 · 0 评论 -
LeetCode #201: Bitwise AND of Numbers Range
Problem Statement(Source) Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive.For example, given the range [5, 7], you should return 4.A原创 2016-09-17 17:24:19 · 201 阅读 · 0 评论 -
LeetCode #56: Merge Intervals
Problem Statement(Source) Given a collection of intervals, merge all overlapping intervals.For example, Given [1,3],[2,6],[8,10],[15,18], return [1,6],[8,10],[15,18].Solution# Definition for an inter原创 2016-09-17 21:43:44 · 193 阅读 · 0 评论 -
LeetCode #57: Insert Interval
Problem Statement(Source) Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).You may assume that the intervals were initially sorted according to th原创 2016-09-17 22:01:47 · 357 阅读 · 0 评论 -
LeetCode #402: Remove K Digits
Problem StatementGiven a non-negative integer num represented as a string, remove k digits from the number so that the new number is the smallest possible.Note:The length of num is less than 105 and w原创 2016-09-18 16:03:57 · 570 阅读 · 0 评论 -
LeetCode #352: Data Stream as Disjoint Intervals
Problem Statement(Source) Given a data stream input of non-negative integers a1, a2, …, an, …, summarize the numbers seen so far as a list of disjoint intervals.For example, suppose the integers from t原创 2016-09-17 22:12:55 · 392 阅读 · 0 评论 -
[TODO] LeetCode #363: Max Sum of Rectangle No Larger Than K
Problem Statement(Source) Given a non-empty 2D matrix matrix and an integer k, find the max sum of a rectangle in the matrix such that its sum is no larger than k.Example:Given matrix = [ [1, 0, 1]原创 2016-09-04 14:38:24 · 245 阅读 · 0 评论