小米面试

Posted bili111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小米面试相关的知识,希望对你有一定的参考价值。

linux命令处理文本:

awk 将文本文件的内容按行读取,并可以指定分割符号,然后打印出具体某列的值。主要是用来处理列的。例如,某个data文件有多行,每行的字段以分号隔开,现要求打印出第3列的信息:cat data | awk -F ‘;‘ ‘{print $3}‘      或者    awk -F ‘;‘ ‘{print $2}‘ data        (-F指定分隔符)

 

sed命令也是处理每一行,它主要是对每一行的内容进行替换,但是它并没有修改源文件的内容,只是把修改后的内容输出而已。例如:将文本data中每一行中出现book的单词换成books:

sed ‘s/book/books/g‘ data (如果没有g,只能匹配并替换第一次出现的单词,如果有g,则全部替换)。sed -i ‘s/book/books/g‘ data 如果加了-i参数,则直接在文本中替换内容。

 

sort可以对每一行进行排序(按照首字母升序排序),uniq可以去除重复的行,但是必须是相邻的,所以通常需要结合sort命令和uniq命令一起使用。uniq -c 可以输出每行出现的次数(-c 代表count),sort -r 可以逆序排序(-r 代表reverse),head命令默认输出前10行,如果指定输出3行,则head -3。例如,某个data文件有多行,每行有一个单词,输出出现次数top 10 的单词:cat data | sort | uniq -c | sort -r | head 

 

vi编辑一个文本,如果要在文本中显示每一行的行号,则

:set nu

 

 

算法题目:

1.有一个一维数组int a[100],里面存储的是1到100的这100个数,不过是乱序存储;这时把其中某一位置的数值改成-1;请用最优的空间复杂性和时间复杂性求出该位置和值, 请写出代码, 语言不限。

思路:遍历数组得到-1的位置并记录,同时把非-1的值相加得到sum

 void find(int[] nums) {
        int sum=0, idx=-1;
        for(int i=0;i<nums.length;i++){
            if(nums[i]==-1){
                idx=i;
            }else{
                sum+=nums[i];
            }
        }
        System.out.println(5050-sum);
        System.out.println(idx);
    }

 

以上是关于小米面试的主要内容,如果未能解决你的问题,请参考以下文章

小米二轮面试编程题:二叉树的前序遍历,要求非递归方式

Java攒了一个月的面试题及解答,成功收获美团,小米offer

小米面试——案例总结

嵌入式软件面试实战篇 - 小米科技

小米面试

小米面试