>  기사  >  Java  >  Java 배열, 2차원 배열 및 공백 교체 문제를 해결하는 방법

Java 배열, 2차원 배열 및 공백 교체 문제를 해결하는 방법

王林
王林앞으로
2023-04-30 12:37:14819검색

배열에 중복된 숫자

문제 설명

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차원 배열 및 공백 교체 문제를 해결하는 방법

자세한 아이디어

질문이 좀 어렵네요. 질문을 주의 깊게 읽어본 결과, 이 두 자리 배열의 행과 열이 증가하고 있다는 사실을 발견했습니다. 이는 왼쪽 위 요소가 가장 작고 오른쪽 아래 요소가 가장 크다는 것을 의미합니다. 그 위에 있는 요소이고 오른쪽에 있는 요소보다 작습니다.

이 규칙에 따르면 왼쪽 아래부터 시작하여 상황에 따라 위쪽 또는 오른쪽으로 검색할 수 있습니다. 동시에 특별한 상황을 먼저 판단해야 합니다. 코드에 대한 구체적인 세부정보입니다.

코드 및 결과

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차원 배열 및 공백 교체 문제를 해결하는 방법

아이디어에 대한 자세한 설명

이 질문에서 공백을 바꾸는 아이디어는 비교적 간단합니다.

문자열을 순회하여 임시 문자 배열에 저장합니다. 순회 시 비어 있는지 직접 확인하여 "%20" 세 문자를 직접 추가한 다음 최종적으로 출력합니다.

참고: 임시 배열의 크기는 문자열 길이의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제