이 질문의 아이디어는 비교적 간단합니다. 먼저, 배열을 정렬하고, 배열을 순회하고, 직접 출력을 찾습니다. 그건 지금의 것과 마찬가지다. 출력 -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; } }
질문이 좀 어렵네요. 질문을 주의 깊게 읽어본 결과, 이 두 자리 배열의 행과 열이 증가하고 있다는 사실을 발견했습니다. 이는 왼쪽 위 요소가 가장 작고 오른쪽 아래 요소가 가장 크다는 것을 의미합니다. 그 위에 있는 요소이고 오른쪽에 있는 요소보다 작습니다.
이 규칙에 따르면 왼쪽 아래부터 시작하여 상황에 따라 위쪽 또는 오른쪽으로 검색할 수 있습니다. 동시에 특별한 상황을 먼저 판단해야 합니다. 코드에 대한 구체적인 세부정보입니다.
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; } }
이 질문에서 공백을 바꾸는 아이디어는 비교적 간단합니다.
문자열을 순회하여 임시 문자 배열에 저장합니다. 순회 시 비어 있는지 직접 확인하여 "%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 == ' ') { array[index++] = '%'; array[index++] = '2'; array[index++] = '0'; } else { array[index++] = c; } } String newStr = new String(array, 0, index); return newStr; } }
위 내용은 Java 배열, 2차원 배열 및 공백 교체 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!