前言:
\textcolor{Green}{前言:}
前言:
💞快秋招了,那么这个专栏就专门来记录一下,同时呢整理一下常见面试题
💞部分题目来自自己的面试题,部分题目来自网络整理
给我冲
学习目标:
- Linux有哪些命令
- 查看Linux的进程
- 算法题:排序链表
面试题:
Linux有那些命令?
文件和目录管理:ls、cd、pwd、mkdir、cp、mv、rm、chmod、chown、touch、cat、more、less、ln等。
系统信息查询:date、uptime、uname、whoami、cal、history、top、ps、df、du、free、netstat等。
用户及权限管理:useradd、userdel、passwd、groupadd、groupdel、su、sudo、visudo等。
网络配置和管理:ifconfig、ping、route、nslookup、telnet、ssh、scp、ftp等。
进程和服务管理:service、systemctl、kill、killall、pgrep、pkill等。
磁盘管理:fdisk、mkfs、fsck、mount、umount、dd、parted等。
包管理:apt-get、yum、dpkg、rpm等。
查看linux的进程?
- ps 命令 用来列出系统中的进程。常用的选项包括: -e:显示所有进程 -f:显示完整格式 -u:uesr 显示某个用户的进程
- top top 命令用来动态地显示系统中运行的进程信息。按照 CPU 使用率的高低来排序进程,并以交互方式显示。使用该命令可以实时看到进程的CPU占用率、进程名称等信息。
- htop htop 命令是 top 命令的增强版,提供了更好的用户体验和交互式界面。功能与 top 相似,界面更加丰富,同时可以通过 htop 来杀死一个进程、改变进程的优先级等。
- pstree pstree 命令 可以通过树状图的形式显示进程间的父子关系。可以更好的帮助我们了解进程间的关系,方便查找进程中的异常或者错误。
算法题:
题目来源:
\textcolor{blue}{题目来源: }
题目来源: 148. 排序链表
等级:中等
\textcolor{OrangeRed}{等级:中等}
等级:中等
👉题目描述
给你链表的头结点
head
,请将其按
升序
排列并返回
排序后的链表
。
示例 1:
输入:head =[4,2,1,3]
输出:[1,2,3,4]
示例 2:
输入:head =[-1,5,3,4,0]
输出:[-1,0,3,4,5]
示例 3:
输入:head =[]
输出:[]
提示:
链表中节点的数目在范围 [ 0 , 5 ∗ 1 0 4 ] 内 链表中节点的数目在范围 [0, 5 * 10^4] 内 链表中节点的数目在范围[0,5∗104]内− 1 0 5 < = N o d e . v a l < = 1 0 5 -10^5 <= Node.val <= 10^5 −105<=Node.val<=105
进阶:你可以在
O(n log n)
时间复杂度和常数级空间复杂度下,对链表进行排序吗?
👉代码编写
使用归并算法。首先通过快慢指针找到中点,分别排序,最后将两个
list
合并起来
👉👉方法1
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/classSolution{publicListNodesortList(ListNode head){returnsortList(head,null);}publicListNodesortList(ListNode head,ListNode tail){if(head ==null){return head;}if(head.next == tail){
head.next =null;return head;}// 快慢指针找中点ListNode slow = head, fast = head;while(fast != tail){
slow = slow.next;
fast = fast.next;if(fast != tail){
fast = fast.next;}}ListNode mid = slow;ListNode list1 =sortList(head, mid);ListNode list2 =sortList(mid, tail);ListNode sorted =merge(list1, list2);return sorted;}publicListNodemerge(ListNode list1,ListNode list2){ListNode dummyHead =newListNode(0);ListNode temp = dummyHead, temp1 = list1, temp2 = list2;while(temp1 !=null&& temp2 !=null){if(temp1.val <= temp2.val){
temp.next = temp1;
temp1 = temp1.next;}else{
temp.next = temp2;
temp2 = temp2.next;}
temp = temp.next;}if(temp1 !=null){
temp.next = temp1;}if(temp2 !=null){
temp.next = temp2;}return dummyHead.next;}}
完成?
今天结束。之前学习的明白了吗?
- Linux有哪些命令
- 查看Linux的进程
- 算法题:排序链表
版权归原作者 秦 羽 所有, 如有侵权,请联系我们删除。