php支持的最大正整数,最大正整数

本文介绍了一种使用Java递归解决的问题,通过向左移动一个大小为k的区间并保持最大值的方法。博主展示了如何处理输入数组操作,适用于动态调整数组范围的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

没java,那我发一个,虽然不一定是最优解,用递归做的,一次向左移动一个[0,k]区间的最大值,offset偏移量,每次递归的时候递进1,k是剩余的操作次数,最后如果到数组尾元素,就退出递归。 import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int t = scanner.nextInt();

for (int i = 0; i < t; i++) {

int k = scanner.nextInt();

int n = scanner.nextInt();

int[] arr = new int[n];

for (int j = 0; j < n; j++) {

arr[j] = scanner.nextInt();

}

function(0, k, arr);

print(arr);

}

}

private static void print(int[] arr) {

for (int i = 0; i < arr.length - 1; i++) {

System.out.print(arr[i] + " ");

}

System.out.println(arr[arr.length - 1]);

}

public static void function(int offset, int k, int[] arr) {

if (offset == arr.length - 1) {

if (k % 2 != 0) {

int temp = arr[offset];

arr[offset] = arr[offset - 1];

arr[offset - 1] = temp;

}

return;

}

int max = arr[offset];

int index = offset;

for (int i = offset + 1; i <= offset + k && i < arr.length; i++) {

if (max < arr[i]) {

index = i;

max = arr[i];

}

}

for (int i = 0; i < index - offset; i++) {

int temp = arr[index - i];

arr[index - i] = arr[index - i - 1];

arr[index - i - 1] = temp;

k--;

}

if (k != 0) {

offset++;

function(offset, k, arr);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值