Day 34 面试题】的更多相关文章

1.把一个字符串转换成整数——<剑指Offer>P29 2.求链表中的倒数第k个结点——<剑指Offer>P30 3.实现Singleton模式——<剑指Offer>P48 参考:http://www.cnblogs.com/tonglin0325/p/5196818.html 4.数组的内存是连续的,所以数组的时间效率很高,可以用来实现简单的哈希表——<剑指Offer>35题“第一个只出现一次的字母” 5.面试题3:二维数组中的查找——<剑指Offe…
一.题目一:翻转单词顺序 1.1 题目说明 题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student.",则输出"student. a am I". 1.2 解题思路 第一步翻转句子中所有的字符.比如翻转"I am a student."中所有的字符得到".tneduts a ma I",此时不但翻转了句子中单词的顺序,连单词内…
问题描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路1:(显然是比较耗时的) 直接去判断每个整数是不是丑数,然后找到第N个小的数.(牛客网提交超时) public int GetUglyNumber_Solution(int index) { if(index <= 0){ return 0; } int number = 0; int found =…
只包含因子2.3.5的数称作丑数. #include <iostream> #include <vector> using namespace std; int GetUglyNumber(int n) { ) ; vector<); UglyNum[] = ; vector<int>::iterator it2 = UglyNum.begin(); vector<int>::iterator it3 = UglyNum.begin(); vector…
题目: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路: 1.逐个判断 逐个判断每个整数是不是丑数.根据丑数的定义,丑数只能被2,3,5整除,也就是说,如果一个数能被2整除,连续除以2,如果能被3整除,连续除以3,如果能被5整除,连续除以5,如果最后得到1,那么这个数就是丑数,否则就不是. 2.创建数组保存已经找到的丑数 第一种方法效率比较低,因为该方法对每个…
题目: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路: 第一个丑数是1,此后保存3个下标:乘以2的数位置.乘以3的数位置.乘以5的数位置.每次比较由2.3.5衍生出来的丑数的大小,取最小的作为下一个丑数. 维护这3个下标:判断下一个丑数是由2.3还是5衍生的,那个数的下标位置前进1. 需要注意的是,下一个丑数可能是其中两个或三个数衍生的,比如在生成6时,2衍…
一.Set是最简单的一种集合.集合中的对象不按特定的方式排序,并且没有重复对象. Set接口主要实现了两个实现类: HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快 TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序. Set 的用法:存放的是对象的引用,没有重复对象 Set set=new HashSet(); String s1=new String("hello"); String s2=s1; String…
题目链接 题目大意:找出一串升序数组中target值的起始下标和结束下标值,如果不存在则返回{-1,-1}. 解法一:用二分查找,找到数组中的target,然后找其左边和右边的target下标值.代码如下(耗时11ms): public int[] searchRange(int[] nums, int target) { if(nums == null || nums.length == 0) { int[] r = {-1, -1}; return r; } int low = 0, hig…
题目:我们把仅仅包括因子2.3 和5 的数称作丑数(Ugly Number).求从小到大的顺序的第1500个丑数. 举例说明: 比如6.8 都是丑数.但14 不是.它包括因子7.习惯上我们把1 当做第一个丑数. 解题思路: 第一种:逐个推断每个数字是不是丑数的解法,直观但不够高效. 另外一种:创建数组保存已经找到丑数,用空间换时间的解法. 依据丑数的定义. 丑数应该是还有一个丑数乘以2.3 或者5 的结果(1除外). 因此我们能够创建一个数组,里面的数字是排好序的丑数,每个丑数都是前面的丑数乘以…