对于给定的由 个整数组成的数组 ,你需要按照下述规则进行操作: 从数组中选出连续的 个元素(即选择一个长度为 的连续子数组); 将数组中剩余的 个元素重新排序; 在重新排序后的数组中选择一个位置,顺序插入刚刚选出的 个元素; 问是否存在至少一种方案,使得最终得到的数组是个严格递增或严格递减数组。
区块链毕设网qklbishe.com为您提供问题的解答
对于给定的由
个整数组成的数组
,你需要按照下述规则进行操作:
从数组中选出连续的
个元素(即选择一个长度为
的连续子数组);
将数组中剩余的
个元素重新排序;
在重新排序后的数组中选择一个位置,顺序插入刚刚选出的
个元素;
问是否存在至少一种方案,使得最终得到的数组是个严格递增或严格递减数组。
就是过不了,也是服了,你们看看?怎么优化。
import java.util.*; import java.util.stream.Collectors; public class Main { private static final String YES = "YES"; private static final String NO = "NO"; public static void main(String[] args) { Scanner in = new Scanner(System.in); Integer num = Integer.parseInt(in.nextLine()); String[] result = new String[num]; for (int i = 0; i < num; i++) { Integer m = Integer.parseInt(in.nextLine().split(" ")[1]); String[] data = in.nextLine().split(" "); List<Integer> list = Arrays.stream(data).map(Integer::parseInt).collect( Collectors.toList()); result[i] = fun1(list, m); } for (int i = 0; i < num; i++) { System.out.println(result[i]); } } public static String fun1(List<Integer> list, int len) { List<Integer> sortList = new ArrayList<>(list); Collections.sort(sortList); int listSize = list.size(); for (int i = 0; i <= listSize - len; i++) { List<Integer> ele = list.subList(i, i + len); String str = fun2(sortList, ele); if (YES.equals(str)) { return YES; } } return NO; } public static String fun2(List<Integer> resource, List<Integer> target) { int n = resource.size(), m = target.size(); for (int i = 0; i <= n - m; i++) { boolean forwardMatch = true, backwardMatch = true; for (int j = 0; j < m; j++) { if (!resource.get(i + j).equals(target.get(j))) { forwardMatch = false; } if (!resource.get(n - 1 - i - j).equals(target.get(j))) { backwardMatch = false; } if (!forwardMatch && !backwardMatch) { break; } } if (forwardMatch || backwardMatch) { return YES; } } return NO; } }
34:04
以上就是关于问题对于给定的由 个整数组成的数组 ,你需要按照下述规则进行操作:
从数组中选出连续的 个元素(即选择一个长度为 的连续子数组);
将数组中剩余的 个元素重新排序;
在重新排序后的数组中选择一个位置,顺序插入刚刚选出的 个元素;
问是否存在至少一种方案,使得最终得到的数组是个严格递增或严格递减数组。的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训