精华内容
下载资源
问答
  • 判断数字是否连续

    2013-05-17 16:22:49
    如:现有一数组 int i[]={2,1,3,5,6,7,8,10,12,14,16,17,18,19,21}; 要得到类似1-3,5-8,10,12,14,16-19,21这样的结果,用java怎么写呀?
  • 设计一个算法,判断这个数组中的元素是否连续相邻。需要注意以下4点:(1)数值允许是乱序的,如87506。(2)0可以通配任意数值,如87506中的0可以通配成9或者4.(3)0可以多次出现。(4)全0算连续,只有一个非0算连续。...

    一个整数数组,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现;0是例外,可以反复出现。设计一个算法,判断这个数组中的元素是否连续相邻。需要注意以下4点:

    (1)数值允许是乱序的,如 8 7 5 0 6。

    (2)0可以通配任意数值,如8 7 5 0 6中的0可以通配成9或者4.

    (3)0可以多次出现。

    (4)全0算连续,只有一个非0算连续。

    思路分析:

    如果没有0的存在,要组成连续的数列,最大值和最小值的差距必须是n-1;存在0的情况下,只要最大值可最小值的差距小于n-1就可以了,缺失的数值可以用0通配。所以找出数列中非0的最大值和非0的最小值,时间复杂度为O(n)。如果非0最大-非0最小+1

    程序示例代码如下:

    #include "stdafx.h"

    #include

    bool IsContinuous(int* a, int n)

    {

    if (a == NULL || n <= 0)

    return false;

    int min = a[0], max = a[0];

    for (int i = 1; i < n; i++)

    {

    if (a[i] != 0)

    {

    if (min>a[i])

    min = a[i];

    if (max < a[i])

    max = a[i];

    }

    }

    if (max - min>n - 1)

    return false;

    else

    return true;

    }

    int main()

    {

    int array[] = { 8, 7, 5, 0, 6 };

    int len = sizeof(array) / sizeof(array[0]);

    if (IsContinuous(array, len))

    printf("数组连续相邻\n");

    else

    printf("数组不连续相邻\n");

    getchar();

    return 0;

    }

    效果如图:

    b6c511153a1db86b58fdc8f162b17fab.png

    展开全文
  • 判断1-12之间的数字是否连续,比如说:7,8,12就不连续
  • 我需要得到最长的连续数字连续几个,从哪个开始,到哪个结束 如:12,11,10,18,13,19 这里面连续数字是10,11,12,13 和 18,19 我要的结果是4,10,13 谢谢!!
  • 贴吧上有人问,从终端读入一个整数n,随机一个输入一个0 或1判断连续是0 或1 的最大次数。如:输入00011110101在连续输入中,出现4次#coding:utf-8"""python北京周末培训班...

    贴吧上有人问,从终端读入一个整数n,随机一个输入一个0 或1

    判断连续是0 或1 的最大次数。如:

    输入

    0

    0

    0

    1

    1

    1

    1

    0

    1

    0

    1在连续输入中,出现4次

    #coding:utf-8

    """python北京周末培训班

    https://github.com/pythonpeixun/article/blob/master/beijing_weekend.md

    python上海周末培训班

    https://github.com/pythonpeixun/article/blob/master/shanghai_weekend.md

    咨询:qq:1465376564 黄哥所写

    做这个练习题的思路是:先用一个n次的循环,将0或1添加到一个list中,

    最后用一个循环加一个变量来计数,统计连续相等数字1或0的出现次数。

    """

    input_lst = []

    total_num = []

    n = int(raw_input("please input n:\n").strip())

    for i in xrange(n):

    number = int(raw_input("please input number:\n").strip())

    input_lst.append(number)

    length = len(input_lst)

    j = 1

    for i in range(length - 1):

    if input_lst[i] == input_lst[i+1]:

    j += 1

    else:

    total_num.append(j)

    j = 1

    total_num.append(j)

    print input_lst

    print total_num

    print max(total_num)

    展开全文
  • 一、判断时间数组是否连续(格式:yyyyMMdd) public static String convert(String[] ints, int index) { int end = index; if (ints.length == index) {//结束条件,遍历完数组 return ""; } else { for (int...
    一、判断时间数组是否连续(格式:yyyyMMdd)
    public static String convert(String[] ints, int index) {
        int end = index;
        if (ints.length == index) {//结束条件,遍历完数组
            return "";
        } else {
            for (int i = index; i < ints.length; i++) {
                if (i < ints.length - 1) {
                    Date date1 = DateUtils.addDate(DateUtils.format(String.valueOf(ints[i]),"yyyyMMdd"),1);
                    Date date2 = DateUtils.format(String.valueOf(ints[i + 1]),"yyyyMMdd");
                    if (date1.getTime()==date2.getTime()){
                        end = i;
                    }
                    else {
                        if (i > index)
                            end = end + 1;
                        break;
                    }
                } else {
                    if (end == ints.length - 2) {
                        end = ints.length - 1;
                        break;
                    }
                }
            }
            if (index == end)//相等说明不连续
                return ints[index] + "," + convert(ints, end + 1);
            else//连续
                return ints[index] + "-" + ints[end] + "," + convert(ints, end + 1);
        }
    }
    
    
    二、判断数字数组是否连续
    
     public static String convert(Integer[] ints, int index) {
            int end = index;
            if (ints.length == index) {//结束条件,遍历完数组
                return "";
            } else {
                for (int i = index; i < ints.length; i++) {
                    if (i < ints.length - 1) {
                        if (ints[i] + 1 == ints[i + 1]) {
                            end = i;
                        } else {
                            if (i > index)
                                end = end + 1;
                            break;
                        }
                    } else {
                        if (end == ints.length - 2) {
                            end = ints.length - 1;
                            break;
                        }
                    }
                }
                if (index == end)//相等说明不连续
                    return ints[index] + "," + convert(ints, end + 1);
                else//连续
                    return ints[index] + "-" + ints[end] + "," + convert(ints, end + 1);
            }
        }

     

    现有一个整数数组元素是0~65535之间的任意数字,已知相同数字不会重复出现,而0可以重复出现,且0可以通配任意一个数字,设计一个算法判断该数组是否连续。注意:
    1)数组中的数据可以乱序
    2)0可以出现多次

    题目分析:

    如果一个包含n个数据的数组是连续的,那么最大值和最小值之差一定为n-1;如果包含0的话,那么最大值和最小值之差不能超过n-1。

     

    package dataStructure;
    
    public class MyContinusArray {
    	static boolean isContinusArray(int a[]) {
    		int min = a[0];
    		int max = a[0];
    		for(int i = 1; i < a.length; i++) {
    			if(a[i] < min && a[i] !=0 ) {
    				min = a[i];
    			}
    			if(a[i] > max && a[i] != 0) {
    				max = a[i];
    			}
    		}
    		
    		if((max - min) <= a.length-1 ) {
    			return true;
    		}
    		return false; 
    		
    	}
    	
    	public static void main(String[] args) {
    		int array_1[] = {0,2,3,0,0};
    		int array_2[] = {3,2,5,4,0};
    		int array_3[] = {10,56,0,6,1};
    		System.out.println("array_1是否为连续数组:"+isContinusArray(array_1));
    		System.out.println("array_2是否为连续数组:"+isContinusArray(array_2));
    		System.out.println("array_3是否为连续数组:"+isContinusArray(array_3));
    	}
    }
    
    

    原文链接:https://blog.csdn.net/qq_41900081/article/details/86531863

    展开全文
  • 现有一串数字,例如: 69-78,79-88,89-95,96-102,103,104,131-134...初步想通过数组实现,先用split分组,得到各个数字组合,然后再判断前后2个数字, 但是循环判断时老是出错,得不到正确结果,请各位帮帮忙,谢谢!
  • 判断是否连续数字

    千次阅读 2018-01-15 14:29:35
    * 是否连续数字 * * @param numOrStr * @return */ public static boolean isOrderNumeric(String numOrStr) { boolean flag = true; for (int i = 0; i (); i++) { if (i > 0) {
    /**
    	 * 是否是连续数字
    	 *
    	 * @param numOrStr
    	 * @return
    	 */
    	public static boolean isOrderNumeric(String numOrStr) {
    		boolean flag = true;
    		for (int i = 0; i < numOrStr.length(); i++) {
    			if (i > 0) {// 判断如123456
    				int num = Integer.parseInt(numOrStr.charAt(i) + "");
    				int num_ = Integer.parseInt(numOrStr.charAt(i - 1) + "") + 1;
    				if (num != num_) {
    					flag = false;
    					break;
    				}
    			}
    		}
    		if (!flag) {
    			for (int i = 0; i < numOrStr.length(); i++) {
    				if (i > 0) {// 判断如654321
    					int num = Integer.parseInt(numOrStr.charAt(i) + "");
    					int num_ = Integer.parseInt(numOrStr.charAt(i - 1) + "") - 1;
    					if (num != num_) {
    						flag = false;
    						break;
    					}
    				}
    			}
    		}
    		return flag;
    	}

    展开全文
  • 例如:Integer[] NoNum ={1,2,3,5,7,8,9,10,13} 输出的结果为 1-3,5,7-10,13
  • 判断数组中的数字是否连续相邻

    千次阅读 2016-06-24 20:35:57
    设计一个算法,当从该数列中随意选取5个数值时,判断这5个数值是否连续相邻。需要注意以下4点: (1)5 个数值允许是乱序的,如 8 7 5 0 6。 (2)0 可以通配任意数值,如8 7 5 0 6 中的 0 可以通配 9 或者 4。 ...
  • python判断列表的连续数字范围并分块的方法情况一:列表中的数字连续数字(从小到大)from itertools import groupbylst = [1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 19] # 连续数字fun = lambda x: x[1]-x[0]for k, g in ...
  • /// 判断数字集合是否连续的 /// </summary> /// <returns></returns> public bool IsContinuous(List<int> numList) { numList.Sort((x, y) => -x.CompareTo(y))...
  • * 判断一个数组中的数值是否连续相邻* 满足以下条件:* 1.0是例外可以反复出现 0可以通配任何字符* 2.相同的数值不会重复出现* 3.该数组可以是乱序的* 当数组不含有0时满足最大值-最小值=n(数组长度)-1* 当数组数组...
  • Co /// ... /// 传入的值是否连续数字(可重复,但必须是连续数字)  ///  /// 1,2,3,4,5,6  ///  public static bool GetStrOrder(string str)  {  string[] arry = s
  • 判断一个数组中的数字是否连续

    千次阅读 2013-09-29 16:08:48
    问题描述:一个数组中若干个非负整数是否连续,其中0可以代表任何数字 Input: 8 1 3 5 0 0 0 6 7 Output: this array is continue 算法实现: #include using namespace std; void sort(int* a,int m) { int ...
  • 我正在尝试编写一个函数来测试列表是否具有连续数字但是具有非常奇怪的捕获.问题是“a”可以用作任何整数的替代,但列表中至少有2个元素必须是数字.元素> = 1(如果不是“a”)并且是整数.可以假设输入是这种形式,...
  • System.out.print("数字连续哦" ); 17 break ; 18 } 19 } 20 System.out.println(flag); 21 } 22 } Collections类里好多方法,具体,自己读API吧 转载于:...
  • 简述 给定一个未排序的数字数组,编写一个函数,如果该数组包含连续数字,则该函数返回true。 * a)如果array为{5,2,3,1,4},则该函数应返回true,因为该数组具有从1到5的连续数字。 * b)如果数组是{83,78,80...
  • 给一串数字判断是否连续

    千次阅读 2017-04-07 16:51:23
    题在标题,思路在代码 #include int main() { int arr[] = { 8 , 3, 2, 6, 4, 5, 3, 7 }; //一组任意数字 int sz = sizeof(arr) / sizeof(arr[0]); //求任意数字数量 int Min = arr[0];... //统计数字排列
  • 问题是找到一种方法来检查列表中的项是否连续的.以下是我写的代码:def consecutive(var):for x in range(2, len(var)):forward = var[x] - var[x-1]backward = var[x-1] - var[x-2]if forward == backward:return...
  • js判断是否有6个连续数字的字符串的正则
  • * 判断是否连续数字 * @param array * @return */ public static boolean gotoNumber(int[] array) { boolean con = false; boolean isBig = false; for (int i = 0; i ; i++) { if (i == 0) ...
  • /// /// 传入的值是否连续数字(可重复,但必须是连续数字) /// /// 1,2,3,4,5,6 /// 1 Max,2 Min /// public static bool GetStrOrder(string str) { string[]
  • js判断字符串是否连续(数字、字母)

    千次阅读 2019-08-26 15:01:00
    1.实现数字是否连贯的验证 var num="123457"; //需要验证的字符串 var ncontinuity=0; //用于连续个数的统计 for(var i=1;i<num.length;i++){ if((num[i]-num[i-1]==1)||(num[i]-num[i-1]==-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 705
精华内容 282
关键字:

判断数字是否连续