欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Sequence and Swaps(思维)

程序员文章站 2022-07-10 09:08:07
题目题意:给出一个长度为n的数组,和数值k,通过如示样例的变换得到一个升序数组思路:先对数组是否有序进行判断,如果有序,则输出答案,反之则判断当前的a[i]是否大于now大于进行一次交换AC代码:package 练习;import java.util.*;import java.io.*;import java.lang.*;public class Main{static Scanner scanner = new Scanner(System.in);public sta...

题目
Sequence and Swaps(思维)
题意:给出一个长度为n的数组,和数值k,通过如示样例的变换得到一个升序数组
Sequence and Swaps(思维)
思路:先对数组是否有序进行判断,如果有序,则输出答案,反之则判断当前的a[i]是否大于now大于进行一次交换
AC代码:

package 练习;
import java.util.*;

import java.io.*;
import java.lang.*;

public class Main{
	static Scanner scanner = new Scanner(System.in);
	public static boolean s(int arr[]) {//判断数组是否有序
		for(int i = 0;i<arr.length-1;i++) {
			if(arr[i] > arr[i+1]) return true;
		}
		return false;
	}
	public static void main(String[] args) {
		int t = scanner.nextInt();
		for(int tt = 0;tt<t;tt++) {			
			show();		
		}
	}
	private static void show() {
		int n = scanner.nextInt(), x = scanner.nextInt();
		int arr[] = new int[n];
		for(int i = 0;i<n;i++) arr[i] = scanner.nextInt();			
		int i = 0;
		int ans = 0;
		while(s(arr)) {
			if(arr[i] > x) {
				int temp = x;
				x = arr[i];
				arr[i] = temp;
				ans++;
			}
			i++;
			if(i>=n) {
				ans = -1;
				break;
			}
		}
		System.out.println(ans);	
	}
}

本文地址:https://blog.csdn.net/nankes/article/details/110442517

相关标签: 思维、贪心