zoukankan      html  css  js  c++  java
  • 228. Summary Ranges

    Given a sorted integer array without duplicates, return the summary of its ranges.

    Example 1:

    Input:  [0,1,2,4,5,7]
    Output: ["0->2","4->5","7"]
    Explanation: 0,1,2 form a continuous range; 4,5 form a continuous range.
    

    Example 2:

    Input:  [0,2,3,4,6,8,9]
    Output: ["0","2->4","6","8->9"]
    Explanation: 2,3,4 form a continuous range; 8,9 form a continuous range.
    class Solution {
        public List<String> summaryRanges(int[] nums) {
            int start = 0;
            int end = 0;
            int le = nums.length;
            List<String> res = new ArrayList<String>();
            
            for(int i = 0; i < le; i++){
                start = i;
                while(i + 1< le && nums[i+1] == nums[i] + 1){
                    end++;
                    i++;
                }
                if(start != end) res.add(nums[start] + "->" + nums[end]);
                if(start == end) res.add(nums[start] + "");
                end++;
            }
            return res;
        }
    }

    双指针法,碉堡。貌似这种求首尾的题都可以用双指针法。

    class Solution {
        public List<String> summaryRanges(int[] nums) {
            List<String> res = new ArrayList<>();
            int n = nums.length;
            int start = 0, end = 0;
            for(int i = 0; i < n; i++) {
                start = i;
                end = i;
                while(i < n - 1 && nums[i+1] == nums[i] + 1) {
                    i++;
                    end++;
                }
                if(end != start) res.add(nums[start] + "->" + nums[end]);
                else res.add(nums[start] + "");
            }
            return res;
        }
    }

    emmmm 我觉得这样表达更符合正常思维

    总结:

    we used two pointers to set a consecutive increament subarray. Everytime we get the start and end == i, then till there's not nums[i+1] == nums[i] + 1, we stop. Then if the end index didn't change, it means the next element is not consecutive. Otherwise, we add a summary of the subarray.

  • 相关阅读:
    工业大数据的理论体系
    我的偶像王坚博士,一位执着的学者!
    云计算遇上区块链,会产生怎样的能量和火花?
    管好超时才能做好异步
    “AliOS之父”——阿里巴巴王坚博士
    Centos7开放及查看端口
    直连不同网段
    实施:帧中继
    网线标准
    以太网的帧结构
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/11915122.html
Copyright © 2011-2022 走看看