java
cquptpupplove
这个作者很懒,什么都没留下…
展开
-
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
/问题1:替换字符串,是在原来的字符串上做替换,还是新开辟一个字符串做替换!问题2:在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法)。 从前往后替换,后面的字符要不断往后移动,要多次移动,所以效率低下 从后往前,先计算需要多少空间,然后从后往前移动,则每个字符只为移动一次,这样效率更高一点。/package ss; public class Ss原创 2017-04-12 17:04:25 · 1621 阅读 · 0 评论 -
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
算法思想: 首先选取数组中右上角的数字,如果该数字等于要查找的数字,则查找过程结束; 如果该数字大于要查找的数字,剔除这个数字所在的列; 如果该数字小于要查找的数字,剔除这个数字所在的行。 这样每一步都可以缩小查找范围,直到找到要查找的数字,或者查找范围为空为止。public class Solution { public boolean Find(int target, int原创 2017-04-06 10:12:58 · 492 阅读 · 0 评论 -
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
思路: 丑数的定义是1或者因子只有2 3 5,可推出丑数=丑数*丑数,假定丑数有序序列为:a1,a2,a3.......an 所以可以将以上序列(a1除外)可以分成3类,必定满足: 包含2的有序丑数序列:2*a1, 2*a2, 2*a3 ..... 包含3的有序丑数序列:3*a1, 3*a2, 3*a3 ..... 包含5的有序丑数序列:5*a1, 5*a2, 5*a3 ..... 以上3个序列原创 2017-05-15 10:26:32 · 2994 阅读 · 0 评论 -
Comparator 实现集合中元素的比较.输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这321323
解题思路: * 先将整型数组数据添加带list集合里面,然后将list用comparator比较器排序,最后将排好序的字符串数组拼接出来。关键就是制定排序规则。 * 排序规则如下: * 若ab > ba 则 a > b, * 若ab * 若ab = ba 则 a = b; * 解释说明: * 比如 "3" "31"但是 "331" > "313",所以要将二者拼接原创 2017-06-13 20:14:57 · 829 阅读 · 0 评论 -
求出1-n的整数中,1出现的次数,例如,1-13中1出现6次。
/* 解题思路:求出n的每一位,包括个位十位百位千位等位置1出现的次数相加即可。以1111为例,个位上出现1的次数为111+1次,111为个位1前面的三位数字。(在简单一点就是如91,个位出现的次数为9+1,1,11,21,32,41,51,61,71,81,91),十位上1出现的个数为n/100*10(每过100的时候,10位上的1就会多10个,) ,当十位不满20的时候便%10取余数相加即可原创 2017-07-28 14:11:52 · 818 阅读 · 0 评论