ホームページ  >  記事  >  Java  >  Java 配列、2 次元配列、およびスペースの置換の問題を解決する方法

Java 配列、2 次元配列、およびスペースの置換の問題を解決する方法

王林
王林転載
2023-04-30 12:37:14821ブラウズ

配列内の数値が重複しています

問題の説明

Java 配列、2 次元配列、およびスペースの置換の問題を解決する方法

詳細なアイデア

この質問のアイデアは比較的簡単に言うと、まず配列をソートし、配列を走査して、前の出力と同じ現在の直接出力を見つけます。出力が見つかりません -1.

注: このメソッドでは、ループ時に添字を 1 から開始する必要があることに注意してください。そうしないと、配列添字例外が報告されます。

コードと結果

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

2次元配列での検索

問題の説明

Java 配列、2 次元配列、およびスペースの置換の問題を解決する方法

アイデアの詳細な説明

この質問は少し難しいです。質問をよく読むと、重要な条件が見つかりました。この 2 桁の配列の行と列が増加しています。これは、左上の要素が最小で、右下の要素が最大であることを意味します。左下の要素が要素よりも大きいことを意味します。その上にある、右側の要素より小さい要素、その反対側に右上の要素。

このルールに従えば、左下からスタートし、状況に応じて上または右に探索することができますが、同時に特殊な状況を最初に判断する必要があります。コードの具体的な詳細。

#コードと結果

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

スペースの置換

#質問の説明

Java 配列、2 次元配列、およびスペースの置換の問題を解決する方法アイデアの詳細な説明

この質問 スペースを置き換えるというアイデアは比較的単純です。

文字列を走査し、一時的な文字配列に保存します。走査中に、それが空かどうかを直接判断します。文字列に「‘ ’」という 3 文字を直接追加すると、最終的に空になります。出力。

注: 一時配列のサイズは文字列の長さの 3 倍に設定されていますが、これは文字列がすべてスペースであると仮定しても満たすことができます。同時に、文字列関連のメソッドの使用にも注意する必要があります。

コードと結果

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

以上がJava 配列、2 次元配列、およびスペースの置換の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。