C#实现求一组整数数列中最长升序列
有一组整数,例如:5, 1, 9, 1, 3, 3, 5, 9, 10, 12, 4, 2, 7, 8, 5, 9 , 例如第一位5,5<1,所以5的升序就是1,第二位 1,一位1<9,9后面是1,所以升序为2,以此类推。
C#实现的代码如下:
1 //定义整形数组变量 2 int[] arr = new int[] { 5, 1, 9, 1, 3, 3, 5, 9, 10, 12, 4, 2, 7, 8, 5, 9 }; 3 //定义一个数组的变量,用于存放数组的下标,已经升序位数 4 int[] len = new int[arr.Length]; 5 len[0] = 1; 6 //双重遍历 7 for (int i = 0; i < arr.Length; i++) 8 { 9 int max = 1; 10 //拿后一位和前以为比较,如果和一位比前一位打,则max加1,否则的话,结束本次循环 11 for (int j = i + 1; j < arr.Length - 1; j++) 12 { 13 if (arr[j - 1] < arr[j]) 14 { 15 max++; 16 } 17 else 18 { 19 break; 20 } 21 } 22 //i代表的是arr的小标,max是代表升序位数 23 len[i] = max; 24 }
最后得到的len[i]数组,就存放了arr数组的下标和,每一位的升序位数。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号