
leetcode
韦人人韦
这个作者很懒,什么都没留下…
展开
-
Leetcode-Valid Parentheses-Python
Valid Parentheses验证有效括号对:给定一个只包含括号类型的字符串,判断该字符串的括号是否有效闭合。Description Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid. The bracket原创 2017-08-16 10:57:27 · 349 阅读 · 0 评论 -
Leetcode-Longest Common Prefix-Python
Longest Common Prefix最长相同前缀:给定一个字符串数组,找出其中最长的共同前缀。这里leetcode并没有说明共同前缀是指两两之间的前缀还是所有字符串的前缀,实际题意是指采用所有字符串的共同前缀。 Description解题思路: 若字符串数组为空则返回空字符串; 否则从所有字符串中找出最短的字符串,依次将最短字符串的每个元素和所有字符串对应位置上的元素进行比较,...原创 2017-08-15 18:45:57 · 359 阅读 · 0 评论 -
Leetcode-Reverse Linked List-Python
Reverse Linked List反转单链表。 Descriptioniterative:# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Soluti原创 2017-08-26 18:09:38 · 775 阅读 · 0 评论 -
Leetcode-Linked List Cycle-Python
Linked List Cycle判断单链表是否存在环。 Description解题思路: 一个单链表如果不存在环,则最后一个元素的下一个节点必然为null. 如果单链表存在环,则: 设置两个指针,一个慢指针和一个快指针。将链表的环想象成是一个圆形操场,两个人在同一起跑线开始绕着操场无限循环跑,那么快的人必然会再一次和慢的人相遇,即快指针的元素和慢指针的元素相同时,即说明存在环。 在代码中原创 2017-08-23 11:48:57 · 420 阅读 · 0 评论 -
Leetcode-Valid Anagram-Python
Valid Anagram给定两个字符串,判断其中一个字符串是否是另一个字符串的异序组合。 Given two strings s and t, write a function to determine if t is an anagram of s.For example, s = “anagram”, t = “nagaram”, return true. s = “rat”, t =原创 2017-08-28 10:51:53 · 480 阅读 · 0 评论 -
Leetcode-Intersection of Two Linked Lists-Python
Intersection of Two Linked Lists寻找两个无环链表的交点。 Description解题思路: 1. 如果两个链长度相同的话,那么对应的一个个比下去就能找到; 2. 如果两个链长度不相同,分别计算出两个链表的长度,计算出长度差值,然后让长度更长的那个链表从头节点先遍历长度差的步数,这样以后两个链表按尾部对齐。接着长链表和短链表同步往下走,遇到的第一个相同的节点就是最原创 2017-08-24 12:39:00 · 304 阅读 · 0 评论 -
Leetcode-Intersection of Two Arrays-Python
Intersection of Two Arrays查找两个数组的共有元素。 Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2]. Description解题思路: 本来是想做关于排序原创 2017-08-29 11:05:21 · 336 阅读 · 0 评论 -
Leetcode-Climbing Stairs-Python
Climbing Stairs爬梯子问题。给定一个n级台阶,每次可以走一个台阶或者两个台阶,一共有多少种走法? Description解题思路: 很常见的一种递推题型,要求n级台阶的走法,即可以分解为求n-1级台阶加上n-2级台阶的走法,climbNum[n]=climbNum[n-1]+climbNum[n-2]。所以问题实质上就是求解斐波那契数列。但由于采用递推方式会产生大量重复的计算,因此原创 2017-08-30 12:01:54 · 692 阅读 · 0 评论 -
Leetcode-Best Time to Buy and Sell Stock-Python
Best Time to Buy and Sell Stock买卖股票的最佳时机,返回最大收益。 Say you have an array for which the ith element is the price of a given stock on day i.If you were only permitted to complete at most one transaction (原创 2017-08-31 22:17:21 · 434 阅读 · 0 评论 -
Leetcode-Remove Duplicates from Sorted List-Python
Remove Duplicates from Sorted List从排序链表中删除重复元素。 Description解题思路: 依次比较相邻的两个链表元素,若值相等,则将前一个节点的next引用为后一个节点的后一个节点。使用cur来依次向下遍历元素,最后返回head。# Definition for singly-linked list.# class ListNode(object):#原创 2017-08-22 12:24:06 · 242 阅读 · 0 评论 -
Leetcode-Merge Two Sorted Lists-Python
Merge Two Sorted Lists合并两个有序链表。 Description解题思路: 此题比较简单,采用迭代的方式。由于链表已经是有序的,所以依次比较两个链表当前元素的大小,然后将较小的元素加入到新的链表中。# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x原创 2017-08-21 19:29:46 · 281 阅读 · 0 评论 -
Leetcode-2sum-python
Leetcode 2sum pythonGiven nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1]. Descriptionclass Solution: def twoSum(self, nums, target): """ :t原创 2017-08-09 12:37:04 · 704 阅读 · 0 评论 -
Leetcode-Implement strStr()-Python
Implement strStr()从字符串中找出给定子字符串的索引,若不存在则返回-1。 Description解题思路: 用python解决这道题很简单,因为python字符串自带的find的方法可以直接实现。 def strStr(self, haystack, needle): """ :type haystack: str :typ原创 2017-08-17 19:39:51 · 704 阅读 · 0 评论 -
Leetcode-Remove Duplicates from Sorted Array-Python
Remove Duplicates from Sorted Array给定一个排序数组,将数组中的重复元素去除,并返回修改后的数组长度。 Description 解题思路: 题目要求不能分配额外空间,由于python中列表是传引用,因此可以对传入的列表进行原地修改。由于数组已经排序,因此可以通过新建一个下标两两比较删除重复的元素。def removeDuplicates(self, nums)原创 2017-08-10 11:04:19 · 361 阅读 · 0 评论 -
Leetcode-Remove element-Python
Remove element在我看来是remove duplicated elements from sorted array的姊妹题。给定一个数组(未排序)和一个元素,要求从数组中去除这个元素并返回数组长度。超出数组长度的部分不在考虑范围内。 Description解题思路: 利用两个指针,一个用来遍历整个数组,如果与给定的元素不相同,则利用另一个index下标将该元素加入到nums数组中。原创 2017-08-11 11:03:02 · 486 阅读 · 0 评论 -
Leetcode-Count and Say-Python
Count and Sayleetcode关于这题的说明比较含糊: The count-and-say sequence is the sequence of integers with the first five terms as following:1112112111112211 is read off as “one 1” or 11. 11 is read off as原创 2017-08-18 19:02:30 · 597 阅读 · 0 评论 -
Leetcode-Search Insert Position-Python
Search Insert Position给定一个有序的无重复元素的序列,和一个目标元素,求出该元素在数组中的下标,若数组中不存在该元素,则返回其在数组中的顺序下标。 Description解题思路: 直接采用暴力查询。首先判断目标元素是否在数组中,若存在,则直接返回下标。 若不存在,将目标元素与数组中的最大最小值比较;如果介于最大最小值之间,则与数组中的任意两个相邻元素进行比较。def s原创 2017-08-12 11:31:00 · 282 阅读 · 0 评论 -
Leetcode-Maximum Subarray-Python
Maximum Subarray最大子串和问题:从一个数组中找出一个字串使其和最大。 Descriptiontips: 子串是指数组中连续的若干个元素,而子序列只要求各元素的顺序与其在数组中一致,而没有连续的要求。解题思路: 自己没有想出来,直接借鉴了网上的动态规划思路,我觉得下面是一些解决的关键点: - 对于array[1…n],如果array[i…j]就是满足和最大的子串,那么对于任何原创 2017-08-13 18:40:40 · 357 阅读 · 0 评论 -
Leetcode-Roman to Integer-Python
Roman to Integer将罗马数字转换为阿拉伯数字。 Descriptionleetcode没有说明具体的转换规则,我是按照罗马数字规则设置的。解题思路: 一个保存罗马数字映射的字典:roman = {'M': 1000,'D': 500 ,'C': 100,'L': 50,'X': 10,'V': 5,'I': 1}规则: - 如果一个元素值比右边元素大,则加上这个元素; - 如果原创 2017-08-14 11:44:06 · 353 阅读 · 0 评论 -
Leetcode-House Robber-Python
House Robber打家劫舍。问题本质就是从数组中找出一个或多个不相邻的数,使其和最大。 You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you原创 2017-09-01 18:24:48 · 531 阅读 · 0 评论