- 博客(11)
- 收藏
- 关注
原创 求出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
835
原创 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
842
原创 基于mysql 批量插入100w测试数据
最近在学习MySQL优化问题,所以先插入100w行数据以供测试,自己学习总结出来的方法供大家参考。1.先建数据库,这个很简单就不用说了2.在数据库里 面建一张表,我用的是emp,代码如下id作为主键自动增长相当于计数器吧,default默认值,这张表是一张员工信息表,大家可供自己的需求建表。ename表示名字,deptno表示部门,job职业 创建日期等等
2017-05-30 13:53:20
2187
原创 把只包含因子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
3038
原创 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列12345是某栈的压入顺序,序列45321为该压栈序列对应弹出顺序。
思路:借用一个辅助的栈,遍历压栈顺序,先讲第一个放入栈中,这里是1,然后判断栈顶元素是不是出栈顺序的第一个元素,这里是4,很显然1≠4,所以我们继续压栈,直到相等以后开始出栈,出栈一个元素,则将出栈顺序向后移动一位,直到不相等,这样循环等压栈顺序遍历完成,如果辅助栈还不为空,说明弹出序列不是该栈的弹出顺序。举例: 入栈1,2,3,4,5 出栈4,5,3,2,1 首先1入辅助栈,
2017-05-04 20:41:22
2682
4
原创 java 简单的链表和二叉树添加元素
不用库函数的方法,用自己定义的方法将链表添加元素并依次输出。class ListNode{ int date; ListNode next=null;}package ssss;public class List { public static void main(String[] args) { ListNode a = new ListNode(5
2017-04-24 21:31:37
889
原创 java 十进制转二进制和十六进制
虽然java库已经提供了转换方法,这里讨论用java语法写进制转换。根据&的性质把转换的位数一位位输出即可。class jinzhitrans{ char []as={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//十六进制要用到字符 void toBOH(int n,int base,in
2017-04-23 10:45:55
911
原创 输入某二叉树的前序遍历和中序遍历的结果重建出该二叉树。设输入的前序遍历和中序遍历的结果中都不含重复的数字。如输前序{1,2,4,7,3,5,6,8}和中序{4,7,2,1,5,3,8,6},则重建。
/* 先序遍历第一个位置肯定是根节点node, 中序遍历的根节点位置在中间p,在p左边的肯定是node的左子树的中序数组,p右边的肯定是node的右子树的中序数组 另一方面,先序遍历的第二个位置到p,也是node左子树的先序子数组,剩下p右边的就是node的右子树的先序子数组 把四个数组找出来,分左右递归调用即可 */public class Solution { public
2017-04-20 15:22:39
1238
原创 输入一个链表,从尾到头打印链表每个节点的值。
思路:借助堆栈的“后进先出”实现, 创建链表后先把链表压入栈中,后依次弹出即可。package aa;import java.util.ArrayList;import java.util.Iterator;import java.util.Stack;public class Aa { public static void main(String[] args) {
2017-04-18 16:31:47
281
原创 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
/问题1:替换字符串,是在原来的字符串上做替换,还是新开辟一个字符串做替换!问题2:在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法)。 从前往后替换,后面的字符要不断往后移动,要多次移动,所以效率低下 从后往前,先计算需要多少空间,然后从后往前移动,则每个字符只为移动一次,这样效率更高一点。/package ss;public class Ss
2017-04-12 17:04:25
1635
原创 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
算法思想: 首先选取数组中右上角的数字,如果该数字等于要查找的数字,则查找过程结束; 如果该数字大于要查找的数字,剔除这个数字所在的列; 如果该数字小于要查找的数字,剔除这个数字所在的行。 这样每一步都可以缩小查找范围,直到找到要查找的数字,或者查找范围为空为止。public class Solution { public boolean Find(int target, int
2017-04-06 10:12:58
502
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人