前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每日算法题:Day 17(Linux)

每日算法题:Day 17(Linux)

作者头像
算法工程师之路
发布2019-08-20 14:50:14
4250
发布2019-08-20 14:50:14
举报
作者:TeddyZhang,公众号:算法工程师之路

Day 17, Linux知识点走起~

1

编程题

【剑指Offer】丑数

把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。

思路: 首先简单说下质因数是什么,如果一个质数是某个数的约数,那么就说这个质数是这个数的质因数!而丑数的质因子只包括2、3和5。因此我们只需要使用2,3,5相互相乘,并且一个丑数必然是另外一个丑数乘以2或3或5得到的,但由于题目需要按从小到大排列,因此我们每次选择最小的丑数存入res中!最后返回res[N-1]是因为1是最小的丑数!

计算流程如下:(蓝色的为每次选择的丑数,最小)

2 * 1 3 * 1 5 * 1 2 * 2 3 * 1 5 * 1 2 * 2 3 * 2 5 * 1 2 * 3 3 * 2 5 * 1 2 * 3 3 * 2 5 * 2 2 * 4 3 * 3 5 * 2 2 * 5 3 * 3 5 * 2

代码语言:javascript
复制
class Solution {
public:
    int GetUglyNumber_Solution(int index) {
        if(index < ) return index;
        vector<int> res(index);
        res[] = ;
        int t2 = , t3 = , t5 = ;
        for(int i=;i < index; i++){
            res[i] = min(min(res[t2]*, res[t3]*), res[t5]*);
            if(res[i] == res[t2]*) t2++;
            if(res[i] == res[t3]*) t3++;
            if(res[i] == res[t5]*) t5++;
        }
        return res[index-1];
    }
};

【剑指Offer】第一次只出现一个的字符

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).

思路: 使用一个hash_map用来储存每个字符的个数,只需要遍历一次,然后再遍历一次整个字符串的每个字母,从hash_map中获取对应字母的字数,如果为1,直接return。

代码语言:javascript
复制
class Solution {
public:
    int FirstNotRepeatingChar(string str) {
        if(str.length() == )  return -1;
        unordered_map<char, int> hash_map;
        for(int i = ;i < str.length(); i++){
            hash_map[str[i]]++;
        }
        for(int i = ;i < str.length(); i++){
            if(hash_map[str[i]] == ){
                return i;
            }
        }
        return -1;
    }
};

2

概念题

【Linux】top命令常用操作

top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,默认5秒刷新一下进程列表.当输入top命令后会得到下图的界面:

  • 第一行:系统运行时间和平均负载 当前时间、系统已运行时间、当前登录用户的数量、最近5、10、15分钟内的平均负载
  • 第二行:任务 任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务
  • 第三行:cpu状态
  • 第四行:内存 全部可用内存、已使用内存、空闲内存、缓冲内存
  • 第五行:swap 全部、已使用、空闲和缓冲交换空间
  • 第七行及以下:各进程任务的的状态监控

进入top命令后,还可以使用常用交互命令来进行管理:

  • s: 设置刷新时间
  • M: 根据驻留内存大小进行排序
  • P: 根据CPU使用百分比大小进行排序
  • H: 显示线程

【Linux】linux哪些命令可以判断ip可达不可达?

ping: 检查自己主机与目标ip是否联通 tracert: tracert是一个简单的网络诊断工具,可以列出分组经过的路由节点,以及它在IP 网络中每一跳的延迟! talent: 用于远端登入,执行telnet指令开启终端机阶段作业,并登入远端主机。

因此以上三个命令都可以判断ip可不可达!

【Linux】命令解释: more, less, cat命令

more 命令:可以让屏幕在显示满一屏幕时,此时可按空格健继续显示下一个画面,或按q 键停止显示。 less 命令:可以分页显示文件,和 more 命令的区别就在于它支持上下键卷动屏幕,当结束浏览时,只要在 less 命令的提示符":"下按 q 键即可。 cat 命令:主要有三大功能

  • 一次显示整个文件:cat filename
  • 从键盘创建一个文件:cat > filename
  • 将几个文件合并为一个文件:cat file1 file2 > file
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法工程师之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者:TeddyZhang,公众号:算法工程师之路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档