228. Summary Ranges

来源:互联网 发布:天津基础教育网络平台 编辑:程序博客网 时间:2024/04/30 08:59

For example, given [0,1,2,4,5,7], return ["0->2","4->5","7"].

1. 双指针和i++  

1.i++完成,如果可以用双指针

List<String> list = new ArrayList<>();for (int i = 0; i < nums.length; i++) {int a = nums[i];while(i < nums.length - 1 && nums[i + 1] - nums[i] == 1) {i++;}if(a != nums[i]) {list.add(a + "->" + nums[i]);} else {list.add("" + a);}}return list;
2.双指针方法

List<String> list = new ArrayList<>();int start = 0,end = 0;while(start < nums.length) {if(end < nums.length - 1 && nums[end + 1] - nums[end] == 1) {end++;} else{if(end == start) {list.add("" + nums[end]);} else {list.add(nums[start] + "->" + nums[end]);}

end++;

start = end;

}}return list;




0 0
原创粉丝点击