2015年4月30日

OJ练习37——T190 Reverse Bits

摘要: 把一个32位无符号整数按位翻转,For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary... 阅读全文

posted @ 2015-04-30 09:45 EmmaLi 阅读(130) 评论(0) 推荐(0) 编辑

2015年4月29日

OJ练习36——T189 Rotate Array

摘要: 把数组做给定次数的rotate操作。rotate一次:即把末尾的元素放到开头,将其他的元素循环右移一个单位。【思路】1.再开个空间,将末尾的k个元素按从前到后的顺序放在新数组的开头,再将原数组剩下的元素按从前到后的顺序赋给新数组剩下的空间。节省了时间复杂度,增加了空间复杂度。2.顺向思维,每次处理一... 阅读全文

posted @ 2015-04-29 15:23 EmmaLi 阅读(101) 评论(0) 推荐(0) 编辑

OJ练习35——T169 Majority Element

摘要: 得到一串整数的主元素。主元素即出现次数多于n/2(下界)的数。【思路】1.用map类型,记录每个数据出现的次数。2.用博主陆草纯的算法,当连续两数不同时,就把两者抵消掉,剩下的就是主元素。【my code】int majorityElement(vector& nums) { mapm... 阅读全文

posted @ 2015-04-29 09:42 EmmaLi 阅读(120) 评论(0) 推荐(0) 编辑

编程之美2.14——求和最大子数组

摘要: 这里记录的是从《算法导论》看来的解法,待补充。【解法1】——递归,二分将数组分成左右两边,最大子数组出现的情况可能有:1)左半边2)右半边3)跨左右两边对于半边求最大子数组,又可以递归上述思维,所以难点在于写出跨左右两边的情况。代码:void find_max_cross_subarray(int ... 阅读全文

posted @ 2015-04-29 08:32 EmmaLi 阅读(137) 评论(0) 推荐(0) 编辑

2015年4月28日

OJ练习34——T165 Compare Version Numbers

摘要: 比较版本高低。版本的格式:1.1.1可能有多个分隔符。相等则返回0, 大于返回1, 小于返回-1.【思路】分别比较分隔符的每段,转换成十进制后的大小;相等则继续比较下一段,不等则返回相应的结果。【my code】int compareVersion(string version1, string v... 阅读全文

posted @ 2015-04-28 10:30 EmmaLi 阅读(138) 评论(0) 推荐(0) 编辑

OJ练习33——T172 Factorial Trailing Zeroes

摘要: 求n!末尾有多少个0.【思路】1.发现规律2*5会产生1个0,4*25会产生2个0,8*125会产生3个0,……又偶数都包含因子2,所以只要有5,25,125(5^i)出现,就会有配套的2^i出现,所以最终算法是,看n中包含多少个5的次幂。2.笨办法,先算出n!,再循环除以10,计算次数。【othe... 阅读全文

posted @ 2015-04-28 10:25 EmmaLi 阅读(117) 评论(0) 推荐(0) 编辑

2015年4月27日

OJ练习32——T160 Intersection of Two Linked Lists

摘要: 找两个链表的交叉节点,像这样:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3没有交叉返回null;第一个相同的节点就是交叉开始的地方(经验证,该题系统是这样,见后)【思路】1.从后向前遍历,遇到第一个不相同的就停止,但是链表不支持逆序,drop。... 阅读全文

posted @ 2015-04-27 16:30 EmmaLi 阅读(130) 评论(0) 推荐(0) 编辑

OJ练习31——T155 Min Stack

摘要: 设计栈,要求支持pop,push,top,以及返回栈中最小值的功能。【思路】首见题型。要用两个stack,其中一个保留最小值。每次选择比minstack.top小的值push进去,这样就能保持top始终是最小值。【other code】class MinStack {private: stac... 阅读全文

posted @ 2015-04-27 10:07 EmmaLi 阅读(142) 评论(0) 推荐(0) 编辑

OJ练习30——T125 Valid Palindrome

摘要: 判断字符串是否是回文。字母、数字都算在内;空串也是回文。【思路】经典回文,两个指针,一个从前向后遍历,一个从后向前,遇到不是要求字符的就跳过。前后指针位置交叉(i>j),则遍历结束。特殊的地方在于,包含字母和数字,如果一一排除,代码很繁琐。【my code】bool isPalindrome(str... 阅读全文

posted @ 2015-04-27 08:57 EmmaLi 阅读(131) 评论(0) 推荐(0) 编辑

2015年4月24日

OJ练习29——T119 Pascal's Triangle II

摘要: 打印杨辉三角指定行,返回vector类型。【思路】1.照搬前面一道题,保存所有行;2.最小空间复杂度0(n),也是题目要求。即每一行覆盖上一行,为了保证不提前覆盖有效值,需要从后向前算。【other code】vector getRow(int rowIndex) { vector r... 阅读全文

posted @ 2015-04-24 15:04 EmmaLi 阅读(76) 评论(0) 推荐(0) 编辑

导航