再刷剑指offer-2020.7.11
替换空格
https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
1、二维数组中的查找(一般思路及二分思路)
public class Solution { public boolean Find(int target, int [][] array) { int i=0,j=array[0].length-1; while(i<array.length&&j>=0){ if(array[i][j]>target)j--; else if(array[i][j]<target)i++; else return true; } return false; } } public class Solution { public boolean Find(int target, int [][] array) { for(int i=0;i<array.length;i++){ int l=0,h=array[0].length-1; while(l<=h){ int mid=l+(h-l)/2; if(array[i][mid]>target)h=mid-1; else if(array[i][mid]<target)l=mid+1; else return true; } } return false; } }
2、替换空格
public class Solution { public String replaceSpace(StringBuffer str) { StringBuilder sb=new StringBuilder(); for(int i=0;i<str.length();i++){ if(str.charAt(i)==' ')sb.append("%20"); else sb.append(str.charAt(i)); } return sb.toString(); } } public class Solution { public String replaceSpace(StringBuffer str) { String s=str.toString(); s=s.replaceAll("\\s","%20"); return s; } }
3、