Упражнения на Java: найдите самую длинную возрастающую непрерывную подпоследовательность в данном массиве целых чисел
Java Basic: упражнение 178 с решением
Напишите программу на Java, чтобы найти самую длинную непрерывную подпоследовательность в данном массиве целых чисел.
Пример решения:
Java-код:
import java.util.*;
public class Solution {
public static void main(String[] args) {
int[] nums = { 10, 11, 12, 13, 14, 7, 8, 9, 1, 2, 3 };
System.out.println("Original array: " + Arrays.toString(nums));
System.out.println("Size of longest increasing continuous subsequence: " + longest_seq(nums));
}
public static int longest_seq(int[] nums) {
int max_sequ = 0;
if (nums.length == 1) return 1;
for (int i = 0; i < nums.length - 1; i++) {
int ctr = 1;
int j = i;
if (nums[i + 1] > nums[i]) {
while (j < nums.length - 1 && nums[j + 1] > nums[j]) {
ctr++;
j++;
}
} else if (nums[i + 1] < nums[i]) {
while (j < nums.length - 1 && nums[j + 1] < nums[j]) {
ctr++;
j++;
}
}
if (ctr > max_sequ) {
max_sequ = ctr;
}
i += ctr - 2;
}
return max_sequ;
}
}
Пример вывода:
Исходный массив: [10, 11, 12, 13, 14, 7, 8, 9, 1, 2, 3] Размер самой длинной увеличивающейся непрерывной подпоследовательности: 5
Блок - схема:
Редактор кода Java:
Компания: Facebook
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Java, чтобы получить новое двоичное дерево с той же структурой и тем же значением данного двоичного дерева.
Далее: напишите Java-программу с добавлением единицы к числу заданных положительных чисел, представленных в виде массива цифр.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code