博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 382: Linked List Random Node
阅读量:5796 次
发布时间:2019-06-18

本文共 1011 字,大约阅读时间需要 3 分钟。

Resevior Sampling : https://en.wikipedia.org/wiki/Reservoir_sampling

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */class Solution {    private ListNode head;    private Random rand;    /** @param head The linked list's head.        Note that the head is guaranteed to be not null, so it contains at least one node. */    public Solution(ListNode head) {        this.head = head;        rand = new Random();    }        /** Returns a random node's value. */    public int getRandom() {        ListNode runner = head.next;        int result = head.val;        for (int i = 1; runner != null; i++, runner = runner.next) {            if (rand.nextInt(i + 1) == i) result = runner.val;        }        return result;    }}/** * Your Solution object will be instantiated and called as such: * Solution obj = new Solution(head); * int param_1 = obj.getRandom(); */

 

转载于:https://www.cnblogs.com/shuashuashua/p/7637880.html

你可能感兴趣的文章
shell编程笔记六:实现ll命令
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
[nodejs] nodejs开发个人博客(五)分配数据
查看>>
《Linux内核修炼之道》 之 高效学习Linux内核
查看>>
Java数据持久层框架 MyBatis之API学习九(SQL语句构建器详解)
查看>>
30分钟Git命令“从入门到放弃”
查看>>
nginx : TCP代理和负载均衡的stream模块
查看>>
MYSQL数据库间同步数据
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
行为型模式:观察者模式
查看>>
让前端小姐姐愉快地开发表单
查看>>
Dubbo笔记(四)
查看>>
Web前端JQuery入门实战案例
查看>>
Android开发教程 - 使用Data Binding(一) 介绍
查看>>
java B2B2C Springboot电子商城系统- SSO单点登录之OAuth2.0 登出流程(3)
查看>>
12月26日云栖精选夜读:CDN新品发布:阿里云SCDN安全加速开放公测
查看>>
USB 通信原理
查看>>
7zZip zip RAR iOS
查看>>
ssh无密码登陆远程主机
查看>>