关闭

【图文解释】快速排序算法

高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。 假设我们现在对“6  1  2 7  9  3  4  5 10  8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列...
阅读(619) 评论(0)

【小米笔试题】朋友圈问题-并查集解法

2016年小米校招笔试第三题(西安站) 3 假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。 假如:n = 5,m = 3,r = {{1 , 2} , {2 , 3} , {4 , 5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1、2、3属于一个朋友...
阅读(726) 评论(0)

【超易懂】并查集

一、适用的问题描述: 某家族人口过于庞大,要判断两个是否是亲戚不容易。先给出已知的亲戚关系图,求任意给出的两人是否为亲戚关系。规定亲戚有传递性。 样例输入/输出: 6 5 3 (说明:6个人,5个亲戚关系,3组判断) 1 2 1 5 3 4 5 2 1 3 1 4 Yes 2 3 Yes 5 6 No 并查集图文解释:...
阅读(374) 评论(0)

【小米校招笔试】在Excel中,列的名称是这样一个递增序列:seq={A、B、C、... Z、AA、AB、AC、... AZ、BA、BB、BC、... BZ、CA、... ZZ、AAA、AAB...

2016年小米校招笔试第一题(成都站) 1 在Excel中,列的名称是这样一个递增序列:seq={A、B、C、...  Z、AA、AB、AC、... AZ、BA、BB、BC、... BZ、CA、... ZZ、AAA、AAB...}。求给出任意一个自然数n,求这个序列中第n个字符串。函数声明:String getColumnLable(int n) 参考解法(Java版): pac...
阅读(1800) 评论(0)

字节与字符区别

(一)“字节”的定义 字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。 (二)“字符”的定义 字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。 (三)“字节”与“字符” 它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同: ①...
阅读(283) 评论(0)

【小米校招笔试】假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。

2016年小米校招笔试第三题(西安站) 3 假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。 假如:n = 5,m = 3,r = {{1 , 2} , {2 , 3} , {4 , 5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1、2、3属于一个...
阅读(1713) 评论(0)

【小米校招笔试】一个数组是由有序数组经过n次循环移动后所得,请你用最快速度查找某个元素位置

2016年小米校招笔试第二题(西安站) 2 现有一个数组是由有序数组经过n次循环移动后所得,请你用最快速度查找某个元素位置(如1234568,向右移动3次后为67812345)。 参考解法(Java版): 看题后第一直觉可能想去遍历数组,那么时间复杂度为o(n),不够高效。下面提供另一种参考方法。 package XiaoMi; /*******************...
阅读(733) 评论(0)

【小米校招笔试】给定一些线段,线段有起点和终点,求这些线段的覆盖长度,重复的部分只计算一次

2016年小米校招笔试第一题(西安站) 1 给定一些线段,线段有起点和终点,求这些线段的覆盖长度,重复的部分只计算一次。 参考解法(Java版): package XiaoMi; /******************************************************** * 算法思想:将长线段细分为长度为1的小段,用布尔数组记录每一个小段; * 遍历所有长段...
阅读(1245) 评论(0)

【小米笔试题】实现一个算法,确定一个字符串的所有字符是否全部不同

实现一个算法,确定一个字符串的所有字符是否全部不同。 下面给出3种可行方法,都经过测试。(其中方法一,刚开始理解有些困难,需要多思考一下) package XiaoMi; import java.util.Arrays; public class test11 { /** * @param args */ public static void main(String[] ar...
阅读(600) 评论(0)

【字符串反转总结】Java中七种方法实现

算法比较简单,注释就能说明问题,直接上代码! 方法一:(利用递归实现) public static String reverse1(String s) { int length = s.length(); if (length <= 1) return s; String left = s.substring(0, length / 2); String right = ...
阅读(2034) 评论(2)

【异或交换原理】按位进行异或操作,实现数的交换

用按位异或来交换数原理是什么? 比如, int x=7,y=8; x=x^y; y=x^y; x=x^y; 结果x=8,y=7; 那么,你写的例子就是利用异或的方法将两个数交换,就如同: int x=7,y=8; x=x+y; y=x-y; x=x-y;它们的道理一样,你不妨仔细体会一下! 好,接下来进入正题....   实际原理就是数字A异或B两次...
阅读(405) 评论(0)

Java-递归算法思想

递归算法设计的基本思想:  对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。 在做递归算法的时候,一定要把握住出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口是非常好理解的,就是一个条件,当满足了这个条件的时候我们就不再递归了。 关键要抓住...
阅读(361) 评论(0)

Java中在一个字符串的固定位置插入字符串

要求是这样的: String str1 = "abc"; String str2 = "abcdef"; 将str插入到str1字符串的第三个字符的后面,最后效果为:abcabcdef 方法:利用StringBuffer方法,先追加上str2的前3字节,再加上str1,最后再加上str2的后面所有字节。 参考代码: public static void main(String args...
阅读(5171) 评论(0)

【小米笔试题】二分查找算法的变形

一个有序数组的元素经过循环移动,元素的顺序可能变为“3 4 5 6 7 1 2”。怎样才能找出数组中最小的那个元素?假设数组中的元素各不相同。 方法一:(暴力遍历)时间复杂度o(n) 数组遍历,寻找逆序的元素 // 暴力遍历,时间复杂度o(n) for(int i=0; in[i+1]) { System.out.println("最小值...
阅读(288) 评论(0)

Java-二分查找算法

注释比较详细,直接上代码 package XiaoMi; import java.util.Scanner; public class test9 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan ...
阅读(255) 评论(0)

【Java算法】一天24小时中,时针和分针一共重合多少次?

思路:利用时针与分针的夹角来计算。参考:上一篇文章 因为电子钟表,表针的跳动不是连续的,譬如分钟每次跳动6度,时针每次跳动0.5度。而编写程序时变量h小时,m分钟每次增量为1,所以我们设夹角gap为(-6~6之间)。这样带来另一个问题,一次重合接近和重合分开甚至是完全重合,最多可能出现3次夹角小于gap值。下面是Java实现代码。 package XiaoMi; import java.ut...
阅读(1280) 评论(0)

【小米面试题】-给定一个具体时间,计算时针与分针之间的角度

给定一个具体时间,计算时针与分针之间的角度 在下面解法中,h表示小时,m表示分钟。同时,假定h的范围是0~23。 我们得到以下规则: 1)分针的角度(从12点整开始算起):360*(m/60) 2)时针的角度(从12点整开始算起):360*(h%12)/12+360*(m/60)*(1/12),即为:时针时刻值+分针带来的偏移量 3)时针和分针之间的角度:(时针的角度-分针的角度)%36...
阅读(686) 评论(0)

Java中单链表的实现

注释比较详细,直接上代码! package XiaoMi; import java.util.HashSet; import java.util.Set; public class SingleLinkList { //节点 class Element { //自定义数据结构 public Object value = null; ...
阅读(266) 评论(0)

多项式输出-Java

求两个多项式乘积的问题相信大家在中学时经常碰到,它是这样的一个问题:pa=an*x^n + an-1*x^(n-1) + … + a1*x + a0pa=bm*x^m + bn-1*x^(m-1) + … + b1*x + b0 其中,an, an-1, …,a0, bm, bm-1, … ,b0 都是整数,范围[-10000, 10000]。0 pa*pb的结果也是一个多项式,请你编程来解决...
阅读(608) 评论(0)

回文串-Java

大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串。比如“上海自来水来自海上”就是一个回文串。现在我们的问题来了,把一个数字看成字符串,问它是不是一个回文数?这么简单的题目对想要成为小米工程师的你来说肯定不是问题。不过提醒一下哦:时间复杂度和空间复杂度越低的算法,得分越高。 示例: 12321 ->  true       3     ->  true        1...
阅读(337) 评论(0)
33条 共2页1 2 下一页 尾页
    个人资料
    • 访问:347907次
    • 积分:5619
    • 等级:
    • 排名:第4877名
    • 原创:233篇
    • 转载:61篇
    • 译文:3篇
    • 评论:40条
    最新评论