⚡每日算法&面试题⚡一起肥学(含Linux常用命令)
Posted 肥学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了⚡每日算法&面试题⚡一起肥学(含Linux常用命令)相关的知识,希望对你有一定的参考价值。
看前必知
每日算法和面试题系列出了有一段时间了,收到了不少肥友的支持。想要换工作或者找工作的肥友要多来光顾了计算机领域的技能在不断的更新,你不学习就等于倒退。再不济的话多知道点东西和同事朋友一起吹嘘也能用上啊!哈哈哈。
🏀算法题
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。
示例 1:
输入:head = [1,2,3,4,5], k = 2
输出:[4,5,1,2,3]
示例 2:
输入:head = [0,1,2], k = 4
输出:[2,0,1]
提示:
链表中节点的数目在范围 [0, 500] 内
-100 <= Node.val <= 100 0 <= k <= 2 * 109
🏀一点思路
我刚开始想的是把每个节点的值先放到一个数组里面,然后根据K
来选择那个作为head
创建新的节点。但是这样做好像太笨了。花费的空间和时间都很多。于是便用了“雨伞法”就是根据雨伞的特点不知道那里是头,这样我们就可以根据K
的值来随便进行确定那个是头了比如这样。
我们可以随便的确定哪一个是head
方便多了。
🏀源码和详解
/**
* 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; }
* }
*/
class Solution {
public ListNode rotateRight(ListNode head, int k) {
//建立一个变量节点来代替head一会保证head不变
ListNode foot=head;
if(head==null)return foot=null;
int len=1;
//获取该链表长度和把链表首尾相连构成闭环
while (true){
if(foot.next!=null){
foot=foot.next;
len++;
}
else{
foot.next=head;
break;
}
}
foot=head;
k=k%len;//避免k大于len的情况我们只要k的mod就行
找到k所对应的表头
for(int i=0;i<len-k-1;i++){
foot=foot.next;
}
head=foot.next;
foot.next=null;//将链表的表位置为空
return head;
}
}
🏀面试题——Linux常被问到的命令
关于这方面说实话还是很多了的,不过没关系。肥学陪你一步一步来学习今天我们先介绍cd
和一些其他命令命令
它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径)
cd /home 进入 '/ home' 目录
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd命令
pwd 显示工作路径
这套Linux面试必学知识肥学会一直更下去,我觉得我一下子都总结出来。大家肯定放在收藏夹吃灰所以我们就每天学习一点,肥学每一天。
特别介绍
📣小白练手专栏,适合刚入手的新人欢迎订阅编程小白进阶
📣python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章,可以让你快乐学python练手项目专栏
📣另外想学JavaWeb进厂的同学可以看看这个专栏:传送们
📣这是个面试和考研的算法练习我们一起加油上岸之路
资料领取
以上是关于⚡每日算法&面试题⚡一起肥学(含Linux常用命令)的主要内容,如果未能解决你的问题,请参考以下文章