算法题练习,Solo和koko分糖 ,整数拆分, Cookies 分饼干
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 分饼干的更多相关文章
- FCC JS基础算法题(1):Factorialize a Number(计算一个整数的阶乘)
题目描述: 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积.阶乘通常简写成 n!例如: 5! = 1 * 2 * 3 * 4 * 5 = 120. 算法: function fac ...
- 刷题总结——分糖(ssoj 容斥原理+逆元+快速幂+组合数求插板)
题目: 题目描述 有 N 个(相同的)糖果,M 个(不同的)小朋友.M 和 N 满足:1≤M≤N≤100000(105).要求:1.每个小朋友都至少有一个糖果.2.不存在正整数 X(X>=2), ...
- 解决一道leetcode算法题的曲折过程及引发的思考
写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> ...
- Good Vegetable 4级算法题 分值: [320/3120] 问题: [8/78]
1523 非回文 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 一个字符串是非回文的,当且仅当,他只由前p个小写字母 ...
- LeetCode算法题-Baseball Game(Java实现)
这是悦乐书的第288次更新,第305篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第156题(顺位题号是682).你现在是棒球比赛点记录器.给定一个字符串列表,每个字符串 ...
- LeetCode算法题-Valid Palindrome II(Java实现)
这是悦乐书的第287次更新,第304篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第155题(顺位题号是680).给定非空字符串s,最多可以删除一个字符. 判断它是否是回 ...
- LeetCode算法题-Two Sum IV - Input is a BST(Java实现)
这是悦乐书的第280次更新,第296篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第148题(顺位题号是653).给定二进制搜索树和目标数,如果BST中存在两个元素,使得 ...
- LeetCode算法题-Distribute Candies(Java实现)
这是悦乐书的第266次更新,第279篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第133题(顺位题号是575).给定具有偶数长度的整数数组,其中该数组中的不同数字表示不 ...
- LeetCode算法题-Subtree of Another Tree(Java实现)
这是悦乐书的第265次更新,第278篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第132题(顺位题号是572).给定两个非空的二进制树s和t,检查树t是否具有完全相同的 ...
- LeetCode算法题-Heaters(Java实现)
这是悦乐书的第239次更新,第252篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第106题(顺位题号是475).冬天来了!您在比赛期间的第一份工作是设计一个固定温暖半径 ...
随机推荐
- 编译mmdetection3d时,无root权限下为虚拟环境单独创建CUDA版本
在跑一些深度学习代码的时候,如果需要使用mmdetection3d框架,下载的pytorch的cudatoolkit最好需要和本机的cuda版本是一样的,即输入nvcc -V命令后显示的版本一样. 但 ...
- Flask简单部署至kubernetes
安装Kubernetes.Docker Kubernetes.Docker安装教程 项目地址 Github Flask flask run.py from flask import Flask imp ...
- Ceph配置与认证授权
目录 Ceph配置与认证授权 1. 为什么现在不采用修改配置文件的方式了呢? 2. Ceph元变量 3. 使用命令行修改配置 3.1 全部修改(使用服务名) 3.2 部分修改(修改进程) 3.3 临时 ...
- Android 12(S) ALooper AHandler AMessage(二)
来写个demo试试看到底是ALooper AHandler AMessage是怎么运行的,源文件以及Android.bp如下: // EvenHandler.h #ifndef __MESSAGE_T ...
- 7.18考试总结(NOIP模拟19)[u·v·w]
我们不是狼,我们只是长着獠牙的羊...... 前言 我真 TM 爱死 \(\frac{1}{4}\) 了. 老实说,这套题是真恶心,第一题还有一点思路,到了后面是一点都搞不定了. 总的来说,主要原因是 ...
- 面试官:说一说如何优雅的关闭线程池,我:shutdownNow,面试官:粗鲁!
写在开头 面试官:"小伙子,线程池使用过吗,来聊一聊它吧!" 我:"好的,然后巴拉巴拉一顿输出之前看过的build哥线程池十八问..." 面试官满意的点了点头, ...
- OpenStack 认证服务(keystone)安装前期部署检查
一,检查安装完成情况 1.连接情况 (1) 从控制节点到计算节点的连通性测试 [1]ping计算节点的内网ip [2]ping计算节点的外网ip [3]ping计算节点的主机名 (2)从计算节点到控制 ...
- 高并发缓存中间件Redis
https://tech.meituan.com/2020/07/01/kv-squirrel-cellar.html 美团万亿级 KV 存储架构与实践 阿里云 redis文档 https://hel ...
- 直播预告|把握转型浪潮下的机会,甄知科技教你保姆级IT服务管理
近年来,5G.云计算.大数据.物联网.区块链.人工智能等新兴技术不断在企业中协同发展应用,推动着企业的数字化程度逐步加深.自新冠疫情发生以来,企业的远程服务.服务自助等服务需求激增,企业数字化转型需求 ...
- org.springframework.beans.BeanUtils属性赋值 Date类型处理转换为LocalDateTime, Date不能直接赋值给LocalDateTime
Date createTime = book.getCreateTime(); Date updateTime = book.getUpdateTime(); //属性值处理 BeanUtils.co ...