Leetcode算法练习
文章平均质量分 85
shrimp525
静若瘫痪,动如癫痫
展开
-
Leetcode练习 #3Longest Substring Without Repeating Characters
3. Longest Substring Without Repeating Characters Given a string,find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is"abc", which原创 2017-09-07 22:54:44 · 299 阅读 · 0 评论 -
Leetcode练习 #4Median of Two Sorted Arrays
4. Median of Two Sorted Arrays 题目简析:在两个有序数组里面找出总的中位数,第一个思路当然是对整体排序成为一个数组,在根据数字数目直接找到中位数,这样显然是毫无难度的,因此题目给出一个条件——O(log (m+n))的时间复杂度。看到O(log),第一个联想起来的自然是二分法,因此如何结合二分法找出中位数,这就是我基本原创 2017-09-17 18:37:58 · 189 阅读 · 0 评论 -
Leetcode练习 #5 Longest Palindromic Substring
题目简析:找出最长回文子串,首先要注意的是,回文子串有奇回文和偶回文两种情况,也就是说,无论是奇回文还是偶回文,我们都要各查找一遍,输出最长的答案。当然,当input是空字符串的时候ouput和input也是空字符串,但是input的字符串只有一个字母或者两个不同字母时,output是input的首字母,因为只有一个字母也是奇回文字符串,长度相同,这里默认优先输出位置靠前的回文字符串。原创 2017-09-17 23:09:22 · 167 阅读 · 0 评论 -
Leetcode练习 #8 String to Integer (atoi)
题目简析:实现 字符-àint整数的转换,题意很简单,实现方法也是多种多样,扫描整个字符串、用栈、队列都是可以的,不过这题的要点其实不是把字符换成整数这一步,而是对于一些非法输入等情况的处理。 输入接受一个字符串,根据一些提交测试来看,接受的字符串可能的情况,是包括0个及以上的正负号、空格、数字以及其他非法符号的随意排列组合,下面列举一些例子 “ ” “123”原创 2017-09-19 00:55:08 · 371 阅读 · 0 评论 -
Leetcode练习 #9 Palindrome Number
题目简析:题意是判断一个数字是否为回文数字,回文的定义自然是和回文字符串意思一样啦,不过数字不是字符串,不能很随意地取出首位末位等对称位置的字符进行比较,当然转换成字符串再比较也是一个方案,不过题目有空间限制,而且这样效率也比较低。因此我的思路是对数字实现一个“逆转”操作,将逆转后数字与原输入数字对比,若一样,自然说明了这个数字是回文数字。 那么如何实现逆转呢?这里我们设定原创 2017-09-19 12:32:40 · 259 阅读 · 0 评论 -
Leetcode练习 #11 Container With Most Water
题目简析:这题目我觉得是蛮坑爹的,因为题目的语境要求使得“容器”最大,但是类名却是maxarea,以及想破头脑都想不出两条线如何跟x轴组成容器,经过思考,我觉得这个模型应该是省略容器底部的宽(或者长),假设其为一个缺省值,那么问题的重心就从体积这个问题转化到求侧面积——即长乘高(或宽乘高),加上最后一句不能倾斜的提醒,自然是木桶效应,即指a1、a2之最小者将限制木桶高度,用图拍表示就是原创 2017-09-19 19:41:30 · 304 阅读 · 0 评论 -
Leetcode练习 #55 Jump Game
算法简述:给定一个非负整数序列,数字所在位置代表“层数”,数字本身代表在对应层数所能跳跃的“最高层数”。题目所问的是能否到达目标层,但是我们可以换一个等价的说法:所能到达的最高层数是否大于或等于所给定的目标层数。 题意分析到这里,我们可以看出,在每次进行“跳跃”的决策时,选择的局部最优解可以达到全局最优解,因为可跳跃至N和M层时,若N>M,因为可以跳跃到1~N的任意层数,则M所蕴原创 2017-10-27 15:05:30 · 194 阅读 · 0 评论 -
Leetcode练习 #264 Ugly Number II
题目简析:题目要求找出第N个丑陋数,根据丑陋数的特点,丑陋数只有因数2 3 5,因此当N到达一定数字时,丑陋数的大小会非常大,因此这道题目需要思考一个时间复杂度比较低的算法。 我的第一个算法是,维护一个包含特殊数字的数组A,从num=1开始,假如这个num满足以下条件,那么就放到数组A里,反之则放到丑陋数B中: (1) num既不能被2,也不能被3、5整除 (2) 假如能被原创 2017-10-25 19:18:25 · 195 阅读 · 0 评论