zoukankan      html  css  js  c++  java
  • 巧克力棒分割

    1.题目(如图)

    2.js实现

    function cho(arr){
        
        //存分的两段的值
        var x = [];
        var y = [];
        var flag = false;
        
        //存个数
        var num = 0;
        //循环每一个值
        for(var i=0;i<arr.length;i++){
            x = [];
            y = [];
            flag = false;
            var arr1 = [].concat(arr);
            //这一步循环是指把一个数值分成两段的所有情况
            for(var j=1;j<arr[i]-j;j++){
                x.push(j);
                y.push(arr[i]-j);
            }
            arr1.splice(i,1);
            //根据其中一段去做判断
            //原数组不存在这两段,且这两段不相等,且除这两段外原数组没有重复项,则标记为true
            for(var z = 0;z<x.length;z++){
                if(arr.indexOf(x[z])<0&&arr.indexOf(y[z])<0&&x[z]!=y[z]){
                    if(new Set(arr1).size==arr1.length){
                        flag = true;
                        break;
                    }
                }     
            }
            if(flag){
                num+=1;
            }
        }
        return num;
    }
    console.log(cho([5,6,7,8]));
    console.log(cho([5,5]));
    console.log(cho([2,3,4]));
    console.log(cho([2]));
    console.log(cho([5,5,6,6]));
    console.log(cho([6,7,10,10]));
    console.log(cho([6,6,7,7]));
    console.log(cho([6,6,6,7]));
  • 相关阅读:
    待学习资料
    Hive之数据类型
    Hive 之元数据库的三种模式
    Hive之数据模型
    311 jvm类加载以及对象回收相关
    221 netty模型相关
    J101
    213 NIO编程
    XXLJOB终止定时任务的犯二小故事
    XXL-JOB源码研究(1)---version 2.1.2
  • 原文地址:https://www.cnblogs.com/xinyouhunran/p/14923490.html
Copyright © 2011-2022 走看看