leetcode--Summary Ranges
2015-06-26 16:42
197 查看
题目:
Given a sorted integer array without duplicates, return the summary of its ranges.
For example, given [0,1,2,4,5,7], return [“0->2”,”4->5”,”7”].
描述:
给出一个没有重复值的排序好的整数数组,返回它的取值范围的集合.
例如:给出[0,1,2,3,4,5,7], 返回[“0->2”,”4->5”,”7”].
Python解决方案:
Given a sorted integer array without duplicates, return the summary of its ranges.
For example, given [0,1,2,4,5,7], return [“0->2”,”4->5”,”7”].
描述:
给出一个没有重复值的排序好的整数数组,返回它的取值范围的集合.
例如:给出[0,1,2,3,4,5,7], 返回[“0->2”,”4->5”,”7”].
Python解决方案:
class Solution: # @param {integer[]} nums # @return {string[]} def summaryRanges(self, nums): if len(nums) == 0: #如果给出一个空的集合,直接返回一个空的集合 return [] if len(nums) == 1:#如果就只有一个元素 return [str(nums[0])] ''' 至少两个元素的情况: 1 从第2个元素开始遍历: 2 该元素是最后一个元素吗?若是,第3步;否,第6步; 3 该元素与前一个元素连续吗?若是,第4步;否,第5步; 4 若是,将n->nums[i]添加到result里面,返回result 5 将n->nums[i-1]添加到result里面,将nums[i]添加到result里面,返回result 6 该元素与前一个元素连续吗,若是,nums[i]赋值给n.否,第7步; 7 n=m?若是,则前面的取值范围只有一个值,将m添加到result里面;若否,将m->n添加到result里面. 8 遍历至下一个元素,跳回第2步 ''' m = nums[0] # the start n = nums[0] # the end result = [] for i in range(1,len(nums)): if i == len(nums)-1: if nums[i] != nums[i-1] + 1: if n == m: result.append( str(n)) else: result.append(str(m) + '->' + str(n)) result.append(str(nums[i])) else: result.append(str(m) + '->' + str(nums[i])) elif nums[i] != nums[i-1] + 1: #if bulianxu if n == m: result.append( str(n)) else: result.append(str(m) + '->' + str(n)) n = nums[i] m = nums[i] else: #lianxu n = nums[i] return result
相关文章推荐
- socket函数
- SpringMVC Redirect 跳转后保存Model中的数据
- Marshal UTF8 Strings in .NET
- $.extend,$.fn.extend和(function($){...})(jQuery);
- 第三个Sprint完结工作 用场景来规划测试工作.
- cocos2d-x3.6 连连看连通算法
- B树、B-树、B+树、B*树
- Android 触摸事件传递机制
- 《Java并发编程实践》笔记5——线程活跃性问题及其解决方法
- LintCode HashFunction 哈希函数
- 摄像机中的基础矩阵
- SpringMVC常用基础知识
- [ActionScript 3.0] 使用Embed在类中嵌入字体
- leetcode[88]:Merge Sorted Array
- 使用自定义的BaseAdapter实现 onitemclickListener
- 教你如何编写简单的网络爬虫
- setsockopt()函数
- SpringMVC Controller 介绍
- 典型的查询语句
- php 快速排序