偶然间在脉脉上看到了一道头条的算法面试题
按照题目的理解,简单的写了一个html网页
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>pool</title><meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body><div id="vue_det"><div @click="SmartChange(0)" style="width:40px;height:40px;background:#fff">开始</div><div class="pool" v-for="(item, index) in list"><div @click="change(index)" v-if="item" style="width:40px;height:40px;background:#999;float:left">{{index}}</div><div @click="change(index)" v-if="!item" style="width:40px;height:40px;background:#fff;float:left">{{index}}</div></div></div><script src="https://cdn.bootcss.com/vue/2.6.4/vue.js"></script><script>var vm = new Vue({el: '#vue_det',data: {list: [],i: 0},methods: {details: function () {return this.site + " - 学的不仅是技术,更是梦想!";},change (index) {// console.log(index)if (index === 99) {this.list[0] = !this.list[0]this.list[98] = !this.list[98]this.list[99] = !this.list[99]} else if (index === 0) {this.list[0] = !this.list[0]this.list[1] = !this.list[1]this.list[99] = !this.list[99]} else {// console.log('222')this.list[index] = !this.list[index]this.list[index - 1] = !this.list[index - 1]this.list[index + 1] = !this.list[index + 1]}// console.log(this.list)this.list = JSON.parse(JSON.stringify(this.list))},SmartChange (index) {if (this.i === 99) {return false}if (this.list[this.i] === true) {this.i = this.i + 1setTimeout(() => {this.SmartChange() }, 10);} else {this.change(this.i + 1)setTimeout(() => {this.SmartChange()}, 10);}// console.log('222222222',this.i)},go () {for (let index = 1; index < 101; index++) {this.list.push(Math.random() > 0.5 ? true : false)}console.log(this.list)let a = 0, b = 0this.list.map(val => {if (val) {a++} else {b++}})console.log(a, b)}},created () {this.go()}})</script>
</body>
</html>
得到了如下效果图
得到如题可以进行开关的示例
在最后一个灯特殊处理,链接第一个灯,形成环
经过测试发现
只要从序号0开始,如果打开则跳过,如果是灭灯,则点击i+1
得到如下效果
敲黑板
现在得出的部分结论是
只有随机亮灭灯是一定比例的时候才有可能全部点亮
现在可行的比例为
亮-灭 50-50
亮-灭 51-49
亮-灭 47-53
亮-灭 44-56
亮-灭 42-58
亮-灭 53-47
亮-灭 54-46
而且,还决定于最后一个灯和相邻灯的亮灭
大家有什么好想法,可以留下见解讨论下