2024年LeetCode - 725 - 分隔链表 - Java - 细喔(1),面试字节跳动的Java工程师该怎么准备

结语

小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

我们选择的这个行业就一直要持续的学习,又很吃青春饭。

虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

送给每一位想学习Java小伙伴,用来提升自己。

在这里插入图片描述

本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 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[] splitListToParts(ListNode head, int k) {

    int n  = 0;

    ListNode tmp = head;// tmp 用来 代替 head,遍历脸表获取节点个数

    while(tmp != null){

        n++;

        tmp = tmp.next;

    }

     // quotient - 商 

    int quotient = n / k; // 计算 每部分 至少获得多少个节点

    // remainder - 余数

    int remainder = n % k; // 计算 :每个部分获得了相同的节点个数后,链表剩余的节点个数

    ListNode[] parts = new ListNode[k];// 链表数组,每个元素 都是一个链表的头节点

    ListNode cur = head;// 遍历链表,辅助将链表分成k部分

    for(int  i = 0; i < k && cur != null; i++){

        parts[i] = cur;// 赋予 该部分的头节点

// 这里就是 将 多出节点个数,在真正分配节点之前,赋给前几个部分,前几个部分都将获得 1 个节点。

// 就是 多出 m 个节点,将其分给 m 个部分,即每部分会分到一个节点。

        int partSize = quotient + (i < remainder ? 1 : 0);

        

        for(int j = 1; j < partSize; j++){// 给每个部分 分配节点

            cur = cur.next;

        }

        

        ListNode next = cur.next;

        cur.next = null;// 每个部分获得的节点所形成的链表,都是一个单独的链表

        cur = next;//  为下一次 分配 节点做准备挨

    } 

    return parts;

}

}




![在这里插入图片描述](https://img-blog.csdnimg.cn/aca94442d23747d88bff9540e44996d6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARGFyayBBbmQgR3JleQ==,size_20,color_FFFFFF,t_70,g_se,x_16)



[]( )代码细节

-------------------------------------------------------------------



[]( )细节一:

-------------------------------------------------------------------



![在这里插入图片描述](https://img-blog.csdnimg.cn/aae7d14730ac4b90a1acc84feb2a4733.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARGFyayBBbmQgR3JleQ==,size_20,color_FFFFFF,t_70,g_se,x_16)



* * *



[]( )细节二

------------------------------------------------------------------



![在这里插入图片描述](https://img-blog.csdnimg.cn/00831a2edf2e4f8d9477dc4d4a5b51b8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARGFyayBBbmQgR3JleQ==,size_20,color_FFFFFF,t_70,g_se,x_16)



* * *



[]( )细节三(挖掘细节一)

-------------------------------------------------------------------------



![在这里插入图片描述](https://img-blog.csdnimg.cn/3ace5a199cad4a1480fd3876ec216163.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARGFyayBBbmQgR3JleQ==,size_20,color_FFFFFF,t_70,g_se,x_16)



* * *



[]( )总结

=================================================================



> ![在这里插入图片描述](https://img-blog.csdnimg.cn/d5a845b532fb49afabc3c67aff028be0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARGFyayBBbmQgR3JleQ==,size_20,color_FFFFFF,t_70,g_se,x_16)  

> 当我们看到这道题的时候,我们就要想,你不是要分成 k 个部分吗?那么,每个部分分多少个【quotient】,计算出每个部分 的 分配个数之后,会不会有 多余节点【remainder】。(这两个代码出来了)  

>    

> 然后,计算这两个值,为此,我们需要链表的节点个数。(这就又写了一块代码)  


### 最后

> **面试题文档来啦,内容很多,485页!**
>
> **由于笔记的内容太多,没办法全部展示出来,下面只截取部分内容展示。**

# 1111道Java工程师必问面试题

![](https://img-blog.csdnimg.cn/img_convert/90bcdbc8b9d22f5176470086cbb95833.webp?x-oss-process=image/format,png)

**MyBatis 27题 + ZooKeeper 25题 + Dubbo 30题:**

![](https://img-blog.csdnimg.cn/img_convert/a91cb2f78e4a75f887b06e4581258662.webp?x-oss-process=image/format,png)

**Elasticsearch 24 题 +Memcached +** **Redis 40题:**

![](https://img-blog.csdnimg.cn/img_convert/47813c504e5f2aba9b10714eddf35707.webp?x-oss-process=image/format,png)

**Spring 26 题+ 微服务 27题+ Linux 45题:**

![](https://img-blog.csdnimg.cn/img_convert/d07b4790fff419ee97953f7d2991dba7.webp?x-oss-process=image/format,png)

**Java面试题合集:**

![](https://img-blog.csdnimg.cn/img_convert/7619c3fea5479b4ec0b201fff88c0716.webp?x-oss-process=image/format,png)

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值