LINTCODE——Compute 24 Game
来源:互联网 发布:mid函数的使用方法vb 编辑:程序博客网 时间:2024/05/23 19:07
LINTCODE——Compute 24 Game
题目:给你一个由4个数字组成的数组,判断这4个数能否通过*, /, +, -, (, ) ,计算得到24;
思路:刚开始我想错了,以为只能再4个数中间添加运算符,结果题目是可以调换数组顺序的,修改之后依次遍历数组的情况,用next_permutation函数遍历,出现一个能计算得24立马结束程序;
class Solution {public: /** * @param nums: 4 cards * @return: whether they could get the value of 24 */ bool compute24(vector<double>& nums) { //进行排序,从小到大 sort(nums.begin(), nums.end()); do { if (valid(nums)) return true; } while(next_permutation(nums.begin(), nums.end())); //next_permutation输出比当前序列大的数列 return false; } bool valid(vector<double>& nums) { double a = nums[0], b = nums[1], c = nums[2], d = nums[3]; //暴力美学,强势破解;以下同理 if (valid(a+b, c, d) || valid(a-b, c, d) || valid(a*b, c, d) || valid(a/b, c, d)) return true; if (valid(a, b+c, d) || valid(a, b-c, d) || valid(a, b*c, d) || valid(a, b/c, d)) return true; if (valid(a, b, c+d) || valid(a, b, c-d) || valid(a, b, c*d) || valid(a, b, c/d)) return true; return false; } bool valid(double a, double b, double c) { if (valid(a+b, c) || valid(a-b, c) || valid(a*b, c) || b&&valid(a/b, c)) return true; if (valid(a, b+c) || valid(a, b-c) || valid(a, b*c) || c&&valid(a, b/c)) return true; return false; } bool valid(double a, double b) { if (abs(a+b-24.0) < 0.0001 || abs(a-b-24.0) < 0.0001 || abs(a*b-24.0) < 0.0001 || b&&abs(a/b-24.0) < 0.0001) return true; return false; }};
阅读全文
0 0
- LINTCODE——Compute 24 Game
- Compute 24 Game-LintCode
- SQLSERVER——Compute字句
- UnityShader——初探Compute Shader
- lintcode: Jump Game
- lintcode:Guess Number Game
- Jump Game--lintcode
- compute
- LintCode Jump Game 跳跃游戏
- [Lintcode]Jump Game跳跃游戏
- lintcode(662)Guess Number Game
- lintcode Guess Number Game(Java)
- LintCode Guess Number Game II
- lintcode Guess Number Game II
- LintCode Jump Game 跳跃游戏
- Amazon——Elastic Compute Cloud(EC2)
- 【Compute Vision】学习OpenCV——KeyPoint Matching 优化方式
- Remote Compute Engine——JAVA RMI 学习二
- java设计模式学习—抽象工厂模式
- Guava篇-缓存
- 浅谈TCP socket
- 二叉树遍历
- deepmind_lab 运行 ASSETS 和 MAPS文件依赖的东西
- LINTCODE——Compute 24 Game
- post与get 区别 (转载学习)
- c++基础
- [MongoDB] 安装MongoDB Mac OS X & RHEL/CentOS/Fedora
- 优先级队列
- More Effective C++ 31. Making functions virtual with respect to more than one object
- 操作系统中基本概念一
- 读入所有的Makefile。
- LeetCode-219. Contains Duplicate II