leetcode
文章平均质量分 79
friendbkf
Bingo! macrofun is me too.
展开
-
【leetcode】No.33 Search in Rotated Sorted Array
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).You are given a target value to search. If found in the array retur原创 2015-09-18 21:29:19 · 493 阅读 · 0 评论 -
【leetcode】3. Longest Substring Without Repeating Characters 三种方法
查找给定字符串的最长不重复子串。方法一:该方法很直接,依次从每一个字符开始,向后逐个遍历,直到遇到重复的字符为止。判断字符是否重复,用到了hash数组,可以在常数时间内判断当前字符在本次循环中是否访问过,由于针对的是ASCII字符集,故使用的hash数组大小为256.int lengthOfLongestSubstring(string& s){ int n = s.size();原创 2015-12-07 22:51:29 · 527 阅读 · 0 评论 -
【leetcode】5.Longest Palindromic Substring >>Manacher算法
求指定字符串的最长回文子串。给定 std::string Str,采用manacher算法,在O(n)时间内,在O(n)空间下,解决该问题。字符串包括奇数长的和偶数长,同时其中所含的回文串也分奇数长和偶数长,如果分情况讨论的话,比较复杂。manacher想出了一个方法,可以统一各种情况。manacher算法需要花费O(n)的时间来计算以各个字符为中心的最长回文串的长度,用一个一维数原创 2015-12-07 17:06:40 · 629 阅读 · 0 评论 -
逆序数的三种求法
逆序数:一个数列nums[N],对任意两个数,如果前面的数大于后面的数,那么就称它们为一对逆序数。我们用一个数组存储逆序数的值,Reverse[i]表示nums[i]之后且比nums[i]小的数。下面我们用三种方法(第一种方法没有实际意义)来求Reverse数组。1. 完全暴力计数法先将Reverse[N]数组初始化为0.求Reverse[i]时,从nums[i]开始,依次向后原创 2015-12-19 17:56:15 · 9371 阅读 · 0 评论 -
【leetcode】318. Maximum Product of Word Lengths
Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case原创 2015-12-17 20:55:31 · 1580 阅读 · 0 评论 -
【leetcode】4. Median of Two Sorted Arrays
题目如下:已知两个已从小到大排序的数组nums1[M]和 nums2[N],返回两个数组中所有数字从小到大排序后的中位数。两个数组中可能均有重复的数字。时间复杂度不允许超过log(N+M).分析:看到已排序的、可随机访问的数组,肯定用二分查找。估计还是有人不知道中位数是什么。中位数就是:若总数为偶数,则返回中间两个数字的平均值;否则返回中间的那个数字。二分查找的难点在于现在原创 2015-12-13 13:06:57 · 446 阅读 · 0 评论 -
插入、删除、修改操作 代价不等的 最短编辑距离 动态规化求法
直接上干货。什么叫编辑距离?从字符串str1到字符串str2需要经过多少次编辑。每次编辑只能增加 / 删除 / 替换1个字符。计算出从str1到str2最小的编辑距离(Minimum Edit Distance),用此可作为两个字符串之间的相似度的衡量。定义符号:对于两个字符串strA, strB,它俩的长度分别记为lenA, lenB.MED:最小的编辑距离(Minimu原创 2015-12-11 15:25:33 · 1688 阅读 · 0 评论 -
【leetcode】No.138 Copy List with Random Pointer
Copy List with Random PointerMy SubmissionsQuestion Solution Total Accepted: 50108 Total Submissions: 195575 Difficulty: HardA linked list is given such that each node contai原创 2015-10-14 15:07:53 · 505 阅读 · 0 评论 -
【leetcode】No.150 Evaluate Reverse Polish Notation
Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are +, -, *, /. Each operand may be an integer or another expression.Some examples: ["2", "1", "+原创 2015-09-23 16:09:13 · 460 阅读 · 0 评论 -
【leetcode】No.81 Search in Rotated Sorted Array II
Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed?Would this affect the run-time complexity? How and why?Write a function to determine if a given target is in the原创 2015-09-18 21:46:44 · 462 阅读 · 0 评论 -
【leetcode】No.153 Find Minimum in Rotated Sorted Array
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 exists in原创 2015-09-18 19:59:36 · 712 阅读 · 0 评论 -
【leetcode】No.154 Find Minimum in Rotated Sorted Array II
Follow up for "Find Minimum in Rotated Sorted Array":What if duplicates are allowed?Would this affect the run-time complexity? How and why?Suppose a sorted array is rotated at some pivot unk原创 2015-09-18 20:38:58 · 488 阅读 · 0 评论 -
返回给定值在有序数组中的插入位置
注意,数组中的数值可能有重复。题目描述:给定一非降序数组,数值可能有重复。再给定一值key,请返回第一个大于key的数组元素的下标。如果没有,则返回数组的长度.int binary_search(int* array, int length, int key){ if(array[length - 1] < key) return length; int left = 0,原创 2016-02-27 17:46:50 · 1521 阅读 · 0 评论