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

力扣labuladong——一刷day25

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、力扣528. 按权重随机选择


带权重的随机选择算法

前言


一、力扣528. 按权重随机选择

class Solution {private int[] preSum;private Random rand = new Random();public Solution(int[] w) {preSum = new int[w.length+1];preSum[0] = 0;for(int i = 1; i <= w.length; i ++){preSum[i] = preSum[i-1] + w[i-1];}}public int pickIndex() {int n = preSum.length;int target = rand.nextInt(preSum[n-1])+1;return fun(preSum, target) - 1;}public int fun(int[] preSum, int target){int left = 0, right = preSum.length-1;while(left <= right){int mid = left + (right-left)/2;if(preSum[mid] == target){right = mid - 1;}else if(preSum[mid] < target){left = mid + 1;}else{right = mid - 1;}}return left;}
}/*** Your Solution object will be instantiated and called as such:* Solution obj = new Solution(w);* int param_1 = obj.pickIndex();*/
http://www.lryc.cn/news/225964.html

相关文章:

  • 从单体到微服务:使用Spring Boot构建事件驱动的Java应用程序
  • WMS配送中心主要业务流程
  • 《LeetCode力扣练习》代码随想录——数组(螺旋矩阵II---Java)
  • 计算机毕业设计选题推荐-农产品销售微信小程序/安卓APP-项目实战
  • Linux AMH 服务器管理面板远程访问
  • arcsinx的导数
  • 邻接表储存图实现广度优先遍历(C++)
  • 解构赋值详解以及例子
  • Spring Boot 3.0正式发布及新特性解读
  • 【tgowt】更新thirdparty
  • 金字塔原理小节
  • osg点云加载与渲染
  • 后端架构选择:构建安全强大的知识付费小程序平台
  • 第四节(2):修改WORD中表格数据的方案
  • Qt中对Udp数据打包发送和接收
  • 回调地狱 与 Promise(JavaScript)
  • 【Android】UI开发中的一些小细节笔记
  • 第十三章《搞懂算法:神经网络是怎么回事》笔记
  • SpringBoot不同环境加载不同配置文件(dev,sit,uat)
  • 2023.11.8 hadoop学习-概述,hdfs dfs的shell命令
  • Azure 机器学习 - 使用自动化机器学习训练计算机视觉模型的数据架构
  • STM32F4X SDIO(九) 例程讲解-SD卡擦除、读写
  • 【机器学习范式】监督学习,无监督学习,强化学习, 半监督学习,自监督学习,迁移学习,对比分析+详解与示例代码
  • JUC包下面的四大天王+线程池部分知识
  • AGV系统控制位置管理功能
  • JavaScript从入门到精通系列第三十三篇:详解正则表达式语法(二)
  • 由于找不到 d3dx9_43.dll,无法继续执行代码。重新安装程序可能会解决此问题
  • AI全栈大模型工程师(二十一)LangChain和SemanticKernel怎么选
  • npm install 报错 chromedriver 安装失败的解决办法
  • C语言--每日五道选择题--Day6