Rumah  >  Artikel  >  Java  >  Bagaimana untuk menyelesaikan masalah tatasusunan Java, tatasusunan dua dimensi dan menggantikan ruang

Bagaimana untuk menyelesaikan masalah tatasusunan Java, tatasusunan dua dimensi dan menggantikan ruang

王林
王林ke hadapan
2023-04-30 12:37:14773semak imbas

Nombor pendua dalam tatasusunan

Penerangan masalah

Bagaimana untuk menyelesaikan masalah tatasusunan Java, tatasusunan dua dimensi dan menggantikan ruang

Penjelasan terperinci tentang idea

Idea ​​ini soalan adalah agak mudah Pertama, susun tatasusunan, lalui tatasusunan, dan cari keluaran langsung semasa yang sama dengan yang sebelumnya. Output tidak ditemui -1.

Nota: Dalam kaedah ini, sila ambil perhatian bahawa subskrip mesti bermula dari 1 apabila gelung, jika tidak, pengecualian subskrip tatasusunan akan dilaporkan.

Kod dan hasil

import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型一维数组 
     * @return int整型
     */
    public int duplicate (int[] numbers) {
        // write code here
        Arrays.sort(numbers);
        for(int i = 1 ; i < numbers.length; i++)
            if(numbers[i] == numbers[i - 1]) return numbers[i];
        return -1;
    }
}

Cari dalam tatasusunan dua dimensi

Penerangan masalah

Bagaimana untuk menyelesaikan masalah tatasusunan Java, tatasusunan dua dimensi dan menggantikan ruang

Penjelasan terperinci tentang idea

Soalan ini agak sukar. Selepas membaca soalan dengan teliti, saya mendapati satu syarat penting Baris dan lajur tatasusunan dua digit ini semakin meningkat, yang bermaksud bahawa bahagian kiri atas adalah yang paling kecil dan bahagian kanan bawah adalah yang terbesar unsur di atasnya dan lebih kecil daripada unsur di sebelah kanan Unsur atas sebelah kanan Sebaliknya.

Mengikut peraturan ini, kita boleh mulakan dari kiri bawah dan mencari ke atas atau kanan bergantung kepada keadaan Pada masa yang sama, kita mesti menilai situasi istimewa terlebih dahulu. Butiran khusus pada kod.

Kod dan hasil

public class Solution {
    public boolean Find(int target, int [][] array) {
        //优先判断特殊
        if(array.length == 0) 
            return false;
        int n = array.length;
        if(array[0].length == 0) 
            return false;
        int m = array[0].length;
        //从最左下角的元素开始往左或往上
        for(int i = n - 1, j = 0; i >= 0 && j < m; ){
            //元素较大,往上走
            if(array[i][j] > target)  
                i--;
            //元素较小,往右走
            else if(array[i][j] < target)
                j++;
            else
                return true;
        }
        return false;
    }
}

Ganti ruang

Penerangan masalah

Bagaimana untuk menyelesaikan masalah tatasusunan Java, tatasusunan dua dimensi dan menggantikan ruang

Penjelasan terperinci idea

Soalan ini Idea untuk menggantikan ruang agak mudah.

Kami melintasi rentetan dan menyimpannya ke dalam tatasusunan aksara sementara Apabila melintasi, kami terus menentukan sama ada ia kosong Jika ia ditambah secara langsung dengan tiga aksara "%20", kemudian keluarkannya.

Nota: Saiz tatasusunan sementara ditetapkan kepada 3 kali panjang rentetan, yang betul-betul tepat dengan mengandaikan bahawa rentetan itu adalah semua ruang, ia juga boleh dipenuhi. Pada masa yang sama, anda juga harus memberi perhatian kepada penggunaan kaedah berkaitan rentetan.

Kod dan keputusan

import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
   public String replaceSpace(String s) {
    int length = s.length();
    char[] array = new char[length * 3];
    int index = 0;
    for (int i = 0; i < length; i++) {
        char c = s.charAt(i);
        if (c == &#39; &#39;) {
            array[index++] = &#39;%&#39;;
            array[index++] = &#39;2&#39;;
            array[index++] = &#39;0&#39;;
        } else {
            array[index++] = c;
        }
    }
    String newStr = new String(array, 0, index);
    return newStr;
}
}

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah tatasusunan Java, tatasusunan dua dimensi dan menggantikan ruang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam