Maison  >  Article  >  Java  >  Comment résoudre le problème des tableaux Java, des tableaux bidimensionnels et du remplacement des espaces

Comment résoudre le problème des tableaux Java, des tableaux bidimensionnels et du remplacement des espaces

王林
王林avant
2023-04-30 12:37:14773parcourir

Nombres en double dans le tableau

Description du problème

Comment résoudre le problème des tableaux Java, des tableaux bidimensionnels et du remplacement des espaces

Explication détaillée de l'idée

L'idée de​​cette question est relativement simple. Tout d'abord, triez le tableau, parcourez le tableau et trouvez la sortie directe. c'est le même que celui actuel. Sortie -1 introuvable.

Remarque : dans cette méthode, veuillez noter que l'indice doit commencer à partir de 1 lors de la boucle, sinon une exception d'indice de tableau sera signalée.

Code et résultats

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;
    }
}

Recherche dans un tableau bidimensionnel

Description du problème

Comment résoudre le problème des tableaux Java, des tableaux bidimensionnels et du remplacement des espaces

Idées détaillées

Cette question est un peu difficile. Après avoir lu attentivement la question, j'ai trouvé une condition importante : les lignes et les colonnes de ce tableau à deux chiffres augmentent, ce qui signifie que l'élément supérieur gauche est le plus petit et l'élément inférieur droit est le plus grand. élément au-dessus et plus petit que l'élément à droite. L'élément supérieur droit Au contraire.

Selon cette règle, nous pouvons commencer par le bas à gauche et rechercher vers le haut ou vers la droite selon la situation. En même temps, nous devons d'abord juger de la situation particulière. Détails spécifiques sur le code.

Code et résultats

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;
    }
}

Remplacer les espaces

Description du problème

Comment résoudre le problème des tableaux Java, des tableaux bidimensionnels et du remplacement des espaces

Explication détaillée de l'idée

L'idée de remplacer les espaces dans cette question est relativement simple.

Nous parcourons la chaîne et la stockons dans un tableau de caractères temporaire. Lors du parcours, nous déterminons directement si elle est vide si elle est directement ajoutée avec les trois caractères "%20", puis nous la publions finalement.

Remarque : la taille du tableau temporaire est définie sur 3 fois la longueur de la chaîne, ce qui est parfait en supposant que la chaîne soit composée uniquement d'espaces, elle peut également être satisfaite. Dans le même temps, vous devez également faire attention à l’utilisation de méthodes liées aux chaînes.

Code et résultats

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;
}
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer