当前位置: 首页 > news >正文

力扣382.链表随机节点(java利用数组随机返回节点值)

Problem: 382. 链表随机节点

文章目录

  • 思路
  • 解题方法
  • 复杂度
  • Code

思路

注意链表与数组的特性,对于随机访问读取的操作利用数组可以较方便实现,所以我们可以将链表中的节点值先存入到数组中最后再取出随机生成节点位置的值。

解题方法

1.生成List集合与Random对象并在构造器中完成对其的初始化。
2.将链表的节点值存入到List集合中
3.随机返回一个节点值

复杂度

  • 时间复杂度:

O ( n ) O(n) O(n)

  • 空间复杂度:

O ( n ) O(n) O(n)

Code


/*** 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 {//Time Complexity: O(N)//Space Complexity: O(N)List<Integer> list;Random random;public Solution(ListNode head) {ListNode p = head;list = new ArrayList<>();//将节点都添加到list集合while (p != null) {list.add(p.val);p = p.next;}random = new Random();}public int getRandom() {return list.get(random.nextInt(list.size()));}
}/*** Your Solution object will be instantiated and called as such:* Solution obj = new Solution(head);* int param_1 = obj.getRandom();*/
http://www.lryc.cn/news/220450.html

相关文章:

  • 在jupyter中使用R
  • 2023(第四届)江西开放数据创新应用大赛等你来挑战!
  • 2023-mac rz sz 安装
  • 使用Matplotlib绘画3D图时运行不出结果,也不报错,图片是空白 !!
  • Matlab函数——find
  • mac安装python3
  • 【星海出品】VUE(一)
  • Stable Diffusion 的提示词使用技巧
  • Hook函数
  • USB简介系列-01
  • 算法小白的心得笔记:比较小数点后五位,而不会受到浮点数精度问题的影响。
  • 11月起,33个省份纳入数电票开票试点范围内,发票无纸化已是大势所趋!
  • NLP之Bert多分类实现案例(数据获取与处理)
  • matlab中的mapminmax函数初步理解和应用
  • svc和ingress的关系
  • 可以使用以下代码对数据库查询结果进行分组统计
  • win10提示mfc100u.dll丢失的解决方法,快速解决dll问题
  • zookeeper:启动原理
  • kafka问题汇总
  • C#使用随机数模拟英雄联盟S13瑞士轮比赛
  • RabbitMQ(高级特性)利用限流实现不公平分发
  • 3 网络协议入门
  • 【星海出品】VUE(五)
  • 项目实战之安装依赖npm install
  • Java之图书管理系统
  • 用「埋点」记录自己,不妄过一生
  • 运维知识点-Docker从小白到入土
  • 基于DevEco Studio的OpenHarmony应用原子化服务(元服务)入门教程
  • MySQL和Java程序建立连接的底层原理(JDBC),一个SQL语句是如何执行的呢?
  • uniapp踩坑之项目:uniapp数字键盘组件—APP端