1. Candy Solo和koko分糖

如果可以分给弟弟,必定满足全部异或为0,找出最小的一个给弟弟

function handle1(input) {
let [num, map] = input.split("\n");
map = map.split(/\s+/).map(a => Number(a));
let r = map.reduce((prev, next) => prev ^ next)
if (!!r) {
console.log("NO");
} else {
map.sort((a, b) => a - b)
map.shift();
let sum = map.reduce((prev, next) => prev + next)
console.log(sum);
}
} function handle2(input) {
let array = input.split("\n")[1].split(' ');
let sum = !eval(array.join('^')) && (eval(array.join('+')) - Math.min(...array)) || 'NO';
console.log(sum);
} // handle('3\n3 5 6')
// handle('5\n1 2 3 4 5')
// handle('8\n7258 6579 2602 6716 3050 3564 5396 1773')
handle('10\n656660 476531 89825 757604 876771 923382 842461 898174 923083 760991')

2. 整数拆分 3=1+1+1 3=1+2 3=3

 function handle(input){
let inputArray = input.split('\n');
inputArray.forEach(item =>{
change(item)
})
}
function change(n, total = n, i = 1, s = '') {
if (total <= 0) return console.log(s);
for (let j = i; j <= total; j++) {
change(n, total - j, j, s === '' ? `${n}=${j}` : `${s}+${j}`);
}
}
handle("3\n4")

3. Cookies 分饼干

function cookies(arr) {
let map = arr.filter((item, index) => index % 2 === 1)
map.forEach(item => {
let itemArr = item.split(' ').map(num => Number(num)) let r = itemArr.reduce((prev, next) => prev + next)
if (r % 2 == 0) { // 累加和是偶数,剔除偶数元素的个数
console.log(itemArr.filter(num => num % 2 === 0).length);
} else { // 反之剔除奇数
console.log(itemArr.filter(num => num % 2 !== 0).length);
}
})
}
function cookies1(arr) {
let map = arr.filter((item, index) => index % 2 === 1)
map.forEach(item => {
let oddNum = item.split(' ').filter(num => num % 2 !== 0).length
console.log(oddNum % 2 != 0 ? oddNum : item.split(' ').length - oddNum);
})
}
cookies(['1', '1', "10", "1 2 2 3 4 4 4 2 2 2", '2', '1 1'])
cookies1(['1', '1', "10", "1 2 2 3 4 4 4 2 2 2", '2', '1 1'])

算法题练习,Solo和koko分糖 ,整数拆分, Cookies 分饼干的更多相关文章

  1. FCC JS基础算法题(1):Factorialize a Number(计算一个整数的阶乘)

    题目描述: 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积.阶乘通常简写成 n!例如: 5! = 1 * 2 * 3 * 4 * 5 = 120. 算法: function fac ...

  2. 刷题总结——分糖(ssoj 容斥原理+逆元+快速幂+组合数求插板)

    题目: 题目描述 有 N 个(相同的)糖果,M 个(不同的)小朋友.M 和 N 满足:1≤M≤N≤100000(105).要求:1.每个小朋友都至少有一个糖果.2.不存在正整数 X(X>=2), ...

  3. 解决一道leetcode算法题的曲折过程及引发的思考

    写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> ...

  4. Good Vegetable 4级算法题 分值: [320/3120] 问题: [8/78]

    1523 非回文 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 一个字符串是非回文的,当且仅当,他只由前p个小写字母 ...

  5. LeetCode算法题-Baseball Game(Java实现)

    这是悦乐书的第288次更新,第305篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第156题(顺位题号是682).你现在是棒球比赛点记录器.给定一个字符串列表,每个字符串 ...

  6. LeetCode算法题-Valid Palindrome II(Java实现)

    这是悦乐书的第287次更新,第304篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第155题(顺位题号是680).给定非空字符串s,最多可以删除一个字符. 判断它是否是回 ...

  7. LeetCode算法题-Two Sum IV - Input is a BST(Java实现)

    这是悦乐书的第280次更新,第296篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第148题(顺位题号是653).给定二进制搜索树和目标数,如果BST中存在两个元素,使得 ...

  8. LeetCode算法题-Distribute Candies(Java实现)

    这是悦乐书的第266次更新,第279篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第133题(顺位题号是575).给定具有偶数长度的整数数组,其中该数组中的不同数字表示不 ...

  9. LeetCode算法题-Subtree of Another Tree(Java实现)

    这是悦乐书的第265次更新,第278篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第132题(顺位题号是572).给定两个非空的二进制树s和t,检查树t是否具有完全相同的 ...

  10. LeetCode算法题-Heaters(Java实现)

    这是悦乐书的第239次更新,第252篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第106题(顺位题号是475).冬天来了!您在比赛期间的第一份工作是设计一个固定温暖半径 ...

随机推荐

  1. 编译mmdetection3d时,无root权限下为虚拟环境单独创建CUDA版本

    在跑一些深度学习代码的时候,如果需要使用mmdetection3d框架,下载的pytorch的cudatoolkit最好需要和本机的cuda版本是一样的,即输入nvcc -V命令后显示的版本一样. 但 ...

  2. Flask简单部署至kubernetes

    安装Kubernetes.Docker Kubernetes.Docker安装教程 项目地址 Github Flask flask run.py from flask import Flask imp ...

  3. Ceph配置与认证授权

    目录 Ceph配置与认证授权 1. 为什么现在不采用修改配置文件的方式了呢? 2. Ceph元变量 3. 使用命令行修改配置 3.1 全部修改(使用服务名) 3.2 部分修改(修改进程) 3.3 临时 ...

  4. Android 12(S) ALooper AHandler AMessage(二)

    来写个demo试试看到底是ALooper AHandler AMessage是怎么运行的,源文件以及Android.bp如下: // EvenHandler.h #ifndef __MESSAGE_T ...

  5. 7.18考试总结(NOIP模拟19)[u·v·w]

    我们不是狼,我们只是长着獠牙的羊...... 前言 我真 TM 爱死 \(\frac{1}{4}\) 了. 老实说,这套题是真恶心,第一题还有一点思路,到了后面是一点都搞不定了. 总的来说,主要原因是 ...

  6. 面试官:说一说如何优雅的关闭线程池,我:shutdownNow,面试官:粗鲁!

    写在开头 面试官:"小伙子,线程池使用过吗,来聊一聊它吧!" 我:"好的,然后巴拉巴拉一顿输出之前看过的build哥线程池十八问..." 面试官满意的点了点头, ...

  7. OpenStack 认证服务(keystone)安装前期部署检查

    一,检查安装完成情况 1.连接情况 (1) 从控制节点到计算节点的连通性测试 [1]ping计算节点的内网ip [2]ping计算节点的外网ip [3]ping计算节点的主机名 (2)从计算节点到控制 ...

  8. 高并发缓存中间件Redis

    https://tech.meituan.com/2020/07/01/kv-squirrel-cellar.html 美团万亿级 KV 存储架构与实践 阿里云 redis文档 https://hel ...

  9. 直播预告|把握转型浪潮下的机会,甄知科技教你保姆级IT服务管理

    近年来,5G.云计算.大数据.物联网.区块链.人工智能等新兴技术不断在企业中协同发展应用,推动着企业的数字化程度逐步加深.自新冠疫情发生以来,企业的远程服务.服务自助等服务需求激增,企业数字化转型需求 ...

  10. org.springframework.beans.BeanUtils属性赋值 Date类型处理转换为LocalDateTime, Date不能直接赋值给LocalDateTime

    Date createTime = book.getCreateTime(); Date updateTime = book.getUpdateTime(); //属性值处理 BeanUtils.co ...