分类目录:编程之美

以下是分类 编程之美 下的所有文章

[leetcode]First Bad Version

此题就是二分的变种,但是千万要注意大整数求和越界,正确的计算方式应该是 left + (right – left) / 2; 我使用的是long long. // Forward declaration of isBadVersion API. bool isBadVersion(int version);</p> <p>class Solution { public: int bSearch(long long left, long long right) ……

[leetcode]Palindrome Linked List

此提示单链表判断回文,我本来的思路是 逆转单链表前半截,在跑一次,应该能满足时间复杂度o(n)和空间复杂度o(1),但是不知道为啥老判我超时。 看了discuss和hint,其实简单递归一下就可以了。 class Solution { public: ListNode * temp; bool isPalindrome(ListNode* head) { temp = head; re……

[leetcode]Maximum Product Subarray

此题给的是一个数组,求这个数组中的子数组乘积最大值,考虑正负数和0的情况。hint给的解法应该是每个值求一个max和min,然后用max和min来生成算上当前点的最大值和最小值。我自己用了一个模拟。所有数求乘积,如果为正则为最大,如果为负则比较抛弃最左边或最右边的负数。考虑到0的情况,先用0分界。 class Solution { ……

[leetcode]Isomorphic Strings

这个题用一个hash存一下 两个字符串的对应关系就好了。我开始以为只有小写字母,其实是所有ASCII字符。开始用一个hash存的,后来因为一一对应需要用两个hash存。 class Solution { public: bool isIsomorphic(string s, string t) { if (s.length() != t.length()) return false; char hash_s[256];……

[leetcode]Min Stack

快两年没做题了,压力好大,最近练习一下,保持一种感觉。 这个题据说是《剑指offer》上的一个题,其实我都解法明显有问题,但是还是AC了,我发现PHP,JS,C#写久了,我连Verctor都快不会写了。 此题正确的解法应该是用一个栈来维护最小值,是当前最小值即进入一个栈。另一个栈放数据,即可保证复杂度在O(n),查询复杂度O……