从1到n整数中1出现的次数
题目描述
输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。
1 | public class Solution { |
把数组排成最小的数
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
1 | import java.util.ArrayList; |
注意事项
重写使用的是Collection.sort,它和Arrays.sort的区别是什么。
丑数
题目描述
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
1 | public class Solution { |
注意事项
第一个只出现一次的字符
题目描述
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
1 | import java.util.LinkedHashMap; |
注意事项
代码是抄别人的;
注意以下function:
map.containsKey(key);
map.put(key,value);
map.get(key);
数组中的逆序对
题目描述
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007
两个链表的第一个公共结点
题目描述
输入两个链表,找出它们的第一个公共结点。
1 | /* |
注意事项
数字在排序数组中出现的次数
题目描述
统计一个数字在排序数组中出现的次数。
1 | public class Solution { |
注意事项
二分,用递归写和用循环写都可以
二叉树的深度
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
1 | /** |
注意事项
二叉树优先考虑递归
平衡二叉树
题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
1 | public class Solution { |
注意事项
平衡二叉树用后续遍历,先遍历左右子树,再计算和判断自己的长度。
数组中只出现一次的数字
题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
1 | //num1,num2分别为长度为1的数组。传出参数 |