您好,登錄后才能下訂單哦!
這篇“Java數組、二維數組及替換空格問題怎么解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java數組、二維數組及替換空格問題怎么解決”文章吧。
本題的思路比較簡單,首先將這個數組排序,遍歷數組,找到當前的和前一個相同的直接輸出就好了。沒找到輸出-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數組、二維數組及替換空格問題怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。