概述
一 二维数组查找
题目描述:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
问题解析:
这一道题还是比较简单的,我们需要考虑的是如何做,效率最快。这里有一种很好理解的思路:
矩阵是有序的,从左下角来看,向上数字递减,向右数字递增, 因此从左下角开始查找,当要查找数字比左下角数字大时。右移 要查找数字比左下角数字小时,上移。这样找的速度最快。
示例代码:
publicbooleanFind(inttarget,int[][]array){
//基本思路从左下角开始找,这样速度最快
introw=array.length-1;//行
intcolumn=0;//列
//当行数大于0,当前列数小于总列数时循环条件成立
while((row>=0)&&(column
if(array[row][column]>target){
row--;
}elseif(array[row][column]
column++;
}else{
returntrue;
}
}
returnfalse;
}
二 替换空格
题目描述:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
问题分析:
这道题不难,我们可以通过循环判断字符串的字符是否为空格,是的话就利用append()方法添加追加“%20”,否则还是追加原字符。
或者最简单的方法就是利用: replaceAll(String regex,String replacement)方法了,一行代码就可以解决。
示例代码:
常规做法:
publicStringreplaceSpace(StringBufferstr){
StringBufferout=newStringBuffer();
for(inti=0;i
charb=str.charAt(i);
if(String.valueOf(b).equals(" ")){
out.append("%20");
}else{
out.append(b);
}
}
returnout.toString();
}
一行代码解决:
publicStringreplaceSpace(StringBufferstr){
//return str.toString().replaceAll(" ", "%20");
//public String replaceAll(String regex,String replacement)
//用给定的替换替换与给定的regular expression匹配的此字符串的每个子字符串。
// 转义字符. 如果你要使用 "" 本身, 则应该使用 "\". String类型中的空格用“s”表示,所以我这里猜测"\s"就是代表空格的意思
returnstr.toString().replaceAll("\s","%20");
}
最后
以上就是老实大象为你收集整理的java 二维数组元素转换为空格_(1)剑指Offer之二维数组查找和替换空格问题的全部内容,希望文章能够帮你解决java 二维数组元素转换为空格_(1)剑指Offer之二维数组查找和替换空格问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复