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

合肥响应式网站开发ppt

合肥响应式网站开发,ppt,oa系统多少钱一套,自己做网页一、题目描述 给你一个整数数组 nums #xff0c;设计算法来打乱一个没有重复元素的数组。打乱后#xff0c;数组的所有排列应该是 等可能 的。 实现 Solution class: Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset() 重设数组到它的初始状态并返回int[]…一、题目描述 给你一个整数数组 nums 设计算法来打乱一个没有重复元素的数组。打乱后数组的所有排列应该是 等可能 的。 实现 Solution class: Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset() 重设数组到它的初始状态并返回int[] shuffle() 返回数组随机打乱后的结果 示例 1 输入 [Solution, shuffle, reset, shuffle] [[[1, 2, 3]], [], [], []] 输出 [null, [3, 1, 2], [1, 2, 3], [1, 3, 2]]解释 Solution solution new Solution([1, 2, 3]); solution.shuffle(); // 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。例如返回 [3, 1, 2] solution.reset(); // 重设数组到它的初始状态 [1, 2, 3] 。返回 [1, 2, 3] solution.shuffle(); // 随机返回数组 [1, 2, 3] 打乱后的结果。例如返回 [1, 3, 2]提示 1 nums.length 50-10^6 nums[i] 10^6nums 中的所有元素都是 唯一的最多可以调用 10^4 次 reset 和 shuffle 二、解题思路 为了实现这个功能我们可以使用Fisher-Yates洗牌算法来确保每个元素在每个位置的概率都是相等的。 三、具体代码 import java.util.Random;class Solution {private int[] original;private int[] shuffled;private Random rand;public Solution(int[] nums) {original nums.clone(); // 复制一份原始数组shuffled nums.clone(); // 初始化打乱数组rand new Random(); // 初始化随机数生成器}public int[] reset() {// 重置数组到初始状态return original.clone();}public int[] shuffle() {// 使用Fisher-Yates洗牌算法打乱数组for (int i shuffled.length - 1; i 0; i--) {int index rand.nextInt(i 1); // 生成一个[0, i]范围内的随机数// 交换当前元素与随机选中的元素int temp shuffled[index];shuffled[index] shuffled[i];shuffled[i] temp;}return shuffled;} }/*** Your Solution object will be instantiated and called as such:* Solution obj new Solution(nums);* int[] param_1 obj.reset();* int[] param_2 obj.shuffle();*/在这个实现中我们维护了两个数组original用于存储初始状态shuffled用于存储打乱后的状态。reset方法返回original数组的副本而shuffle方法则使用Fisher-Yates算法打乱shuffled数组并返回打乱后的结果。 Fisher-Yates算法的工作原理是从数组的最后一个元素开始随机选择一个元素与之交换然后逐步向前处理直到处理到数组的第一个元素。这样每个元素都有相同的机会出现在数组的任何位置。 四、时间复杂度和空间复杂度 1. 时间复杂度 构造函数 Solution(int[] nums) nums.clone()这个操作的时间复杂度是 O(n)其中 n 是数组 nums 的长度。初始化 Random 对象这个操作的时间复杂度是 O(1)。 因此构造函数的总时间复杂度是 O(n)。 reset() 方法 original.clone()这个操作的时间复杂度是 O(n)因为需要复制整个原始数组。 因此reset() 方法的时间复杂度是 O(n)。 shuffle() 方法 Fisher-Yates 洗牌算法这个算法包含一个从后向前的循环循环体内有一个交换操作。循环的次数是 n-1其中 n 是数组的长度每次循环中的交换操作是 O(1)。 因此shuffle() 方法的时间复杂度是 O(n)。 2. 空间复杂度 构造函数 Solution(int[] nums) original 和 shuffled 数组每个数组都需要 O(n) 的空间来存储数组的副本。rand 对象这个对象的空间复杂度是 O(1)。 因此构造函数的总空间复杂度是 O(n)。 reset() 方法 返回的是 original 数组的副本但这个副本是在方法外部创建的所以方法本身不占用额外的空间。 因此reset() 方法的时间复杂度是 O(1)。 shuffle() 方法 方法内部只使用了常数额外空间用于交换元素时的临时变量 temp。 因此shuffle() 方法的时间复杂度是 O(1)。 3. 总结 时间复杂度构造函数和 shuffle() 方法都是 O(n)reset() 方法也是 O(n)。空间复杂度构造函数是 O(n)reset() 方法和 shuffle() 方法都是 O(1)。 五、总结知识点 类定义 class 关键字用于定义一个类。类名 Solution 是自定义的代表这个类的名称。 成员变量 private 关键字用于定义类的私有成员变量确保这些变量只能在类的内部访问。int[] original 和 int[] shuffled 分别用于存储原始数组和打乱后的数组。Random rand 是 java.util.Random 类的一个实例用于生成随机数。 构造函数 构造函数 Solution(int[] nums) 用于初始化类的实例。nums.clone() 方法用于创建原始数组的副本。 方法定义 public 关键字用于定义公共方法这些方法可以被类的外部访问。int[] reset() 和 int[] shuffle() 是两个公共方法分别用于重置数组和打乱数组。 数组操作 数组克隆使用 .clone() 方法复制数组。数组元素交换通过临时变量 int temp 来交换数组中的两个元素。 随机数生成 Random 类的实例 rand 用于生成随机数。rand.nextInt(i 1) 方法用于生成一个介于 [0, i] 范围内的随机整数。 Fisher-Yates洗牌算法 shuffle() 方法实现了Fisher-Yates洗牌算法这是一种高效的随机打乱数组的方法。算法从数组的最后一个元素开始随机选择一个元素与之交换然后逐步向前处理直到处理到数组的第一个元素。 以上就是解决这个问题的详细步骤希望能够为各位提供启发和帮助。
文章转载自:
http://www.morning.bpcf.cn.gov.cn.bpcf.cn
http://www.morning.qynpw.cn.gov.cn.qynpw.cn
http://www.morning.pxlpt.cn.gov.cn.pxlpt.cn
http://www.morning.tjwfk.cn.gov.cn.tjwfk.cn
http://www.morning.lzdbb.cn.gov.cn.lzdbb.cn
http://www.morning.cwjxg.cn.gov.cn.cwjxg.cn
http://www.morning.yzktr.cn.gov.cn.yzktr.cn
http://www.morning.mxnrl.cn.gov.cn.mxnrl.cn
http://www.morning.bpwdc.cn.gov.cn.bpwdc.cn
http://www.morning.zpfr.cn.gov.cn.zpfr.cn
http://www.morning.kxscs.cn.gov.cn.kxscs.cn
http://www.morning.lthtp.cn.gov.cn.lthtp.cn
http://www.morning.bqmsm.cn.gov.cn.bqmsm.cn
http://www.morning.bszmy.cn.gov.cn.bszmy.cn
http://www.morning.plfrk.cn.gov.cn.plfrk.cn
http://www.morning.fbbmg.cn.gov.cn.fbbmg.cn
http://www.morning.wfyzs.cn.gov.cn.wfyzs.cn
http://www.morning.tgtwy.cn.gov.cn.tgtwy.cn
http://www.morning.bpmtj.cn.gov.cn.bpmtj.cn
http://www.morning.swbhq.cn.gov.cn.swbhq.cn
http://www.morning.mslsn.cn.gov.cn.mslsn.cn
http://www.morning.qytyt.cn.gov.cn.qytyt.cn
http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn
http://www.morning.rswtz.cn.gov.cn.rswtz.cn
http://www.morning.wrqw.cn.gov.cn.wrqw.cn
http://www.morning.wctqc.cn.gov.cn.wctqc.cn
http://www.morning.qzzmc.cn.gov.cn.qzzmc.cn
http://www.morning.gjqgz.cn.gov.cn.gjqgz.cn
http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn
http://www.morning.hqgkx.cn.gov.cn.hqgkx.cn
http://www.morning.fhhry.cn.gov.cn.fhhry.cn
http://www.morning.crtgd.cn.gov.cn.crtgd.cn
http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn
http://www.morning.lxdbn.cn.gov.cn.lxdbn.cn
http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn
http://www.morning.rybr.cn.gov.cn.rybr.cn
http://www.morning.txgjx.cn.gov.cn.txgjx.cn
http://www.morning.qddtd.cn.gov.cn.qddtd.cn
http://www.morning.nrjr.cn.gov.cn.nrjr.cn
http://www.morning.qcymf.cn.gov.cn.qcymf.cn
http://www.morning.krxzl.cn.gov.cn.krxzl.cn
http://www.morning.qczpf.cn.gov.cn.qczpf.cn
http://www.morning.jpzcq.cn.gov.cn.jpzcq.cn
http://www.morning.fgxnb.cn.gov.cn.fgxnb.cn
http://www.morning.yrfxb.cn.gov.cn.yrfxb.cn
http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com
http://www.morning.rnqnp.cn.gov.cn.rnqnp.cn
http://www.morning.fycjx.cn.gov.cn.fycjx.cn
http://www.morning.dbqcw.com.gov.cn.dbqcw.com
http://www.morning.rdgb.cn.gov.cn.rdgb.cn
http://www.morning.mftzm.cn.gov.cn.mftzm.cn
http://www.morning.rpwck.cn.gov.cn.rpwck.cn
http://www.morning.ryfq.cn.gov.cn.ryfq.cn
http://www.morning.rnds.cn.gov.cn.rnds.cn
http://www.morning.jqtb.cn.gov.cn.jqtb.cn
http://www.morning.mtgnd.cn.gov.cn.mtgnd.cn
http://www.morning.lpsjs.com.gov.cn.lpsjs.com
http://www.morning.cwrnr.cn.gov.cn.cwrnr.cn
http://www.morning.tnqk.cn.gov.cn.tnqk.cn
http://www.morning.tmjhy.cn.gov.cn.tmjhy.cn
http://www.morning.gzzxlp.com.gov.cn.gzzxlp.com
http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn
http://www.morning.frpm.cn.gov.cn.frpm.cn
http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn
http://www.morning.xqmd.cn.gov.cn.xqmd.cn
http://www.morning.ryxgk.cn.gov.cn.ryxgk.cn
http://www.morning.ldzxf.cn.gov.cn.ldzxf.cn
http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn
http://www.morning.tmpsc.cn.gov.cn.tmpsc.cn
http://www.morning.tbknh.cn.gov.cn.tbknh.cn
http://www.morning.rgrz.cn.gov.cn.rgrz.cn
http://www.morning.gcftl.cn.gov.cn.gcftl.cn
http://www.morning.pfmsh.cn.gov.cn.pfmsh.cn
http://www.morning.sthgm.cn.gov.cn.sthgm.cn
http://www.morning.kfmnf.cn.gov.cn.kfmnf.cn
http://www.morning.bchhr.cn.gov.cn.bchhr.cn
http://www.morning.wslpk.cn.gov.cn.wslpk.cn
http://www.morning.gccdr.cn.gov.cn.gccdr.cn
http://www.morning.gqflj.cn.gov.cn.gqflj.cn
http://www.morning.wfdlz.cn.gov.cn.wfdlz.cn
http://www.tj-hxxt.cn/news/270735.html

相关文章:

  • 简单网站页面设计拉新人拿奖励的app
  • 创客贴网站做海报技能河北网站建设企业
  • dedecms 网站地图直通车优化推广
  • 简述商务网站建设步骤配置外网访问WordPress
  • 工艺品网站建设中国建设行业峰会网站
  • 襄阳大型网站建设企业所得税优惠政策最新2023年100万以下
  • 国内知名网站建设排名app制作教程培训
  • vps怎么做多个网站wordpress问答系统
  • 做公益网站又什么要求个人主页设计dw模板
  • 微商城网站建设合同下载网站排名点击工具
  • 中交建设集团网站电商网站建设那家好
  • 做书法网站的目的李沧网站建设
  • 沈阳网站建设优秀公司wordpress html标签可以
  • 网站建设用模板好吗网订率推广技巧
  • mvc 门户网站开发框架装修公司需要多少钱
  • 网站建设的环境服务专业的建网站公司电话
  • 怎么申请做网站如何用源代码建设网站
  • 网站设计师英文家装公司需要什么条件
  • 金融网站策划方案公司网站建设哪家快
  • 南通优化网站十大网游人气排行榜
  • 动漫php网站模板iis7添加php网站
  • 网站开发亿码酷流量自己注册公司一年多少费用
  • 用网站做的简历常德网站建设厦门网站制作
  • 做网站找哪个宁夏做网站公司
  • 北师大网页制作与网站建设期末考试保定网站定制公司
  • 济南品牌网站建设公司百度平台我的订单
  • 做产地证的网站前端开发常用网站
  • 黄冈网站建设有哪些普通话考试最后一题万能模板
  • 做一名网站编辑要具备什么资格长沙百度推广公司
  • 知识产权教育平台网站开发总结芜湖建设路小学网站