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

Jan 17 - Permutations II; BackTracking; Array;

用Permutations的思路就能解决,代码不用改。

代码:

public void permute_array(int[] nums, int len){
        if(flag) return;
        List<Integer> list = new ArrayList<>();
        for(int i = 0; i < nums.length; i++) list.add(nums[i]);
        resultList.add(list);
        int maxIndex = len - 1, minIndex = len -1;
        int max = nums[maxIndex];
        int min = nums[minIndex];
        for(int i = len-1; i>=0; i--){
            if(nums[i] < min){
                nums[minIndex] = nums[i];
                nums[i] = min;
                permute_array(nums, len);
            }
            if(nums[i] < max){
                int j = maxIndex;
                while(j >= 1 && nums[i] < nums[j-1]) j--;
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
                permute_array(nums, len);
            }
            else{
                if(i == 0) flag = true;;
                max = nums[i];
                for(int j = i;j < len-1; j++) nums[j] = nums[j+1];
                nums[len-1] = max;
                minIndex = i;
                maxIndex = len-1;
            }
        }
    }

  

转载于:https://www.cnblogs.com/5683yue/p/5138658.html

相关文章:

  • LLDB 打印 frame
  • JS魔法堂:再识Bitwise Operation Bitwise Shift
  • 菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t
  • 改善Chrome在Windows下的中文字体效果
  • java的classpath和path理解
  • js获取单选button的值
  • [iOS]把16进制(#871f78)颜色转换UIColor
  • 普通选项卡+自动播放功能+向前/向后按钮 原生js
  • Eclipse不能自动编译 java文件的解决方案
  • 归并排序-就地排序
  • 程序设计第二次作业1
  • 作业一
  • 【数论】关于乘法逆元的证明
  • Python练习:简单停车场(栈)
  • ruby include和exclude区别
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • css系列之关于字体的事
  • Hibernate最全面试题
  • If…else
  • JS变量作用域
  • Kibana配置logstash,报表一体化
  • Nacos系列:Nacos的Java SDK使用
  • nginx 负载服务器优化
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 少走弯路,给Java 1~5 年程序员的建议
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 项目实战-Api的解决方案
  • 译自由幺半群
  • 《码出高效》学习笔记与书中错误记录
  • PostgreSQL之连接数修改
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 说说我为什么看好Spring Cloud Alibaba
  • ​​​​​​​​​​​​​​Γ函数
  • #laravel 通过手动安装依赖PHPExcel#
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • %@ page import=%的用法
  • (12)Linux 常见的三种进程状态
  • (2)STL算法之元素计数
  • (9)目标检测_SSD的原理
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (一)RocketMQ初步认识
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .gitignore文件---让git自动忽略指定文件
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .Net中ListT 泛型转成DataTable、DataSet
  • .Net中wcf服务生成及调用
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [BJDCTF2020]The mystery of ip