zoukankan      html  css  js  c++  java
  • LeetCode 228: Summary Ranges

    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"].

    代码要求对数组中的元素进行分段。


    首先给出字符串格式化函数,假设begin==end, 则输出字符串“begin”, 否则输出“begin->end”,代码例如以下:

    string format(int begin, int end)
    	{
    		char buffer[32];
    		if (end == begin)
    		{
    			sprintf(buffer, "%d", begin);
    		}else{
    			sprintf(buffer, "%d->%d", begin, end);
    		}
    		return string(buffer);
    	}

    然后对数组进行分段。代码例如以下:

    vector<string> summaryRanges(vector<int>& nums) {
    		vector<string> result;
    		if (nums.size()<1)
    			return result;
    		int begin, end;
    		begin = end = nums[0];
    		for (int i=1; i<nums.size(); i++)
    		{
    			if (nums[i] ==end || nums[i]==end+1)
    			{
    				end = nums[i];
    			} 
    			else
    			{
    				result.push_back(format(begin, end));
    				begin = end = nums[i];
    			}
    		}
    		result.push_back(format(begin, end));
    		return result;
    	}




  • 相关阅读:
    暑假第二周总结
    7.18-7.24 第一周周报
    poj 3295 Tautology
    2016多校 #2 1006 Fantasia
    codeforces 698B Fix a Tree
    codeforces 699B Bomb
    HDU 4578(线段树
    CF 600F( 二分图
    hdu 5517 Triple(二维树状数组)
    HDU HDOJ5412(树套树or整体二分
  • 原文地址:https://www.cnblogs.com/llguanli/p/6902648.html
Copyright © 2011-2022 走看看