Home >Java >javaTutorial >How to solve the problem of Java arrays, two-dimensional arrays and replacing spaces
The idea of this question is relatively simple, first sort the array , traverse the array, and find the current direct output that is the same as the previous one. Output not found -1.
Note: In this method, please note that the subscript must start from 1 when looping, otherwise an array subscript exception will be reported.
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; } }
This question is a bit difficult. After reading the question carefully, I found an important condition. The rows and columns of this two-digit array are increasing, which means that the upper left is the smallest and the lower right is the largest. The lower left element is larger than the element above it and smaller than the element to the right. The upper right element to the opposite.
According to this rule, we can start from the lower left and search upward or right depending on the situation. At the same time, we must first judge the special situation. Specific details on the code.
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; } }
This question The idea of replacing spaces is relatively simple.
We traverse the string and store it in a temporary character array. During the traversal, we directly determine whether it is empty. If it is directly added with the three characters "‘ ’", it is finally output.
Note: The size of the temporary array is set to 3 times the length of the string, which is just right. Assuming that the string is all spaces, it can also be satisfied. At the same time, you should also pay attention to the use of string-related methods.
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; } }
The above is the detailed content of How to solve the problem of Java arrays, two-dimensional arrays and replacing spaces. For more information, please follow other related articles on the PHP Chinese website!