天天看點

錯題集。。1、選擇題2、 程式設計題

目錄

1、選擇題

2、 程式設計題

組隊競賽

排序子序列

倒置字元串

1、選擇題

錯題集。。1、選擇題2、 程式設計題
錯題集。。1、選擇題2、 程式設計題
錯題集。。1、選擇題2、 程式設計題
錯題集。。1、選擇題2、 程式設計題
錯題集。。1、選擇題2、 程式設計題
錯題集。。1、選擇題2、 程式設計題
錯題集。。1、選擇題2、 程式設計題

錯題集。。1、選擇題2、 程式設計題

錯題集。。1、選擇題2、 程式設計題

2、 程式設計題

組隊競賽

錯題集。。1、選擇題2、 程式設計題

【推導公式!!!】

import java.util.*;

public class Main {
    public static void main(String[] args) {
        //公式:arr.length - 2 *(i +1)
        //i屬于[0,n)
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[3 * n];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
        }
        Arrays.sort(arr);
        long sum = 0;
        for (int i = 0; i < n; i++) {
            sum += arr[arr.length - (2 * (i + 1))];
        }
        System.out.println(sum);
    }
}
           

排序子序列

錯題集。。1、選擇題2、 程式設計題
錯題集。。1、選擇題2、 程式設計題
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n + 1];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        int i = 0;
        int count = 0;
        while (i < n) {
            if (arr[i] < arr[i + 1]) {
                while (i < n && arr[i] < arr[i + 1]) {
                    i++;
                }
                i++;
                count++;
            } else if (arr[i] == arr[i + 1]) {
                i++;
            } else {
                while (i < n && arr[i] > arr[i + 1]) {
                    i++;
                }
                i++;
                count++;
            }
        }
        System.out.println(count);
    }
}
           

倒置字元串​​​​​​​

錯題集。。1、選擇題2、 程式設計題
import java.util.*;

public class Main {
    //1、整體資料逆置
    //2、每個單詞逆置
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        char[] arr = str.toCharArray();
        reverse(arr, 0, arr.length - 1);
        int len = arr.length;
        for (int i = 0; i < arr.length;) {
            int j = i;
            while (j < len && arr[j] != ' ') {
                j++;
            }
            if (j < len) {
                reverse(arr, i, j -1);//j走到空格
                i = j + 1;
            }else {
                reverse(arr, i, j -1);
                i = j;
            }
        }
        System.out.println(String.valueOf(arr));
    }

    private static void reverse(char[] arr, int start, int end) {
        while (start < end) {
            char c = arr[start];
            arr[start] = arr[end];
            arr[end] = c;
            start++;
            end--;
        }
    }
}