1. public class Solution {
  2. private int[] nums;
  3. private Random random;
  4.  
  5. public Solution(int[] nums)
  6. {
  7. this.nums = nums;
  8. random = new Random();
  9. }
  10.  
  11. /** Resets the array to its original configuration and return it. */
  12. public int[] Reset()
  13. {
  14. return nums;
  15. }
  16.  
  17. /** Returns a random shuffling of the array. */
  18. public int[] Shuffle()
  19. {
  20. if (nums == null)
  21. {
  22. return null;
  23. }
  24. int[] a = (int[])nums.Clone();
  25. for (int j = ; j < a.Length; j++)
  26. {
  27. int i = random.Next(j + );
  28. Swap(a, i, j);
  29. }
  30. return a;
  31. }
  32.  
  33. private void Swap(int[] a, int i, int j)
  34. {
  35. int t = a[i];
  36. a[i] = a[j];
  37. a[j] = t;
  38. }
  39. }
  40.  
  41. /**
  42. * Your Solution object will be instantiated and called as such:
  43. * Solution obj = new Solution(nums);
  44. * int[] param_1 = obj.Reset();
  45. * int[] param_2 = obj.Shuffle();
  46. */

https://leetcode.com/problems/shuffle-an-array/#/description

leetcode384的更多相关文章

  1. [Swift]LeetCode384. 打乱数组 | Shuffle an Array

    Shuffle a set of numbers without duplicates. Example: // Init an array with set 1, 2, and 3. int[] n ...

随机推荐

  1. Mysql按照字段值做分组行转列查询

    今天做个后台服务,有个需求是批量生成一批表的数据,如果用BulkInsert会提升很大一截提交效率,但是如果用循环构造提交的Datable,则算法开销太高,所以用这种查询批量查出符合格式的DataTa ...

  2. CF1114F Please, another Queries on Array?

    CF1114F Please, another Queries on Array? 考虑用线段树维护取模后的区间积和真正的区间积所含有的质因子. 每次询问查得这两个值后,一乘一除,即可算出该区间积的欧 ...

  3. Navicat工具导出mySQL数据库某个视图结构的.sql脚本

    用Navicat工具怎么都导不出来mySQL数据库的某个视图.sql脚本,即使导出来也只是包含视图记录,不包含视图结构.经过一番研究,终于克服,操作如下: 1.在某个数据库中,新建备份,如下图 2.选 ...

  4. 《selenium2 python 自动化测试实战》(16)——js操作补充

    js修改readonly属性 我们看到这里日期框标签中有readonly属性,如果我们直接send_keys就无法输入内容,这时我们需要先去掉readonly属性: js ='document.get ...

  5. lua resty template && openresty 使用

    1. 安装 luarocks install lua-resty-template 2. 使用   配置模板页面位置     有多种方式:   a.  直接使用root 目录     代码如下:    ...

  6. socket初步

    简单demo:https://blog.csdn.net/ns_code/article/details/14105457

  7. (转)[Android实例] 关于使用ContentObserver监听不到删除短信会话的解决方案

    最近做通讯录的项目,需要实时监听短信的删除,就用到了观察者ContentObserver,怪异的事情就此发生,当我删除一条短信的时候,可以监听到,但是,当我删除整条短信的时候,就无法监听到,查了很多资 ...

  8. 3.Python连接数据库PyMySQL

    1.安装PyMySQL,输入命令:pip3 install PyMySQL 2.使用Navicat,创建数据库:TESTDB,表:EMPLOYEE,字段:FIRST_NAME,LAST_NAME,AG ...

  9. vue的路由初识01

    今天就做了一个vue-router的实例,(路由跳转,参数的传递[一个参数,多个参数])<!DOCTYPE html> <html> <head> <meta ...

  10. Linux下使用locale命令设置语言环境

    locale命令设置语言环境 在Linux中通过locale来设置程序运行的不同语言环境,locale由 ANSI C提供支持.locale的命名规则为_.,如zh_CN.GBK,zh代表中文, CN ...