leetcode473 Matchsticks to Square
2024-08-27 22:56:39
一开始想求所有结果为target的组合来着,但是所选元素不能重叠。用这个递归思想很简单,分成四个桶,每次把元素放在任意一个桶里面,最后如果四个桶相等就可以放进去,有一个地方可以剪枝,假如任意一个桶的元素和大于了target果断return。另一个优化的点在于,如果要求能不能也就是找到一个就可以的话,那么从大到小的找可以减少回溯的次数,否则会超时。学会了一个sort函数从大到小排序的新方法。sort(nums.rbegin(),nums.rend()); leetcode不能用sort(,,cmp)的那种方法不知道为什么。
#include<bits/stdc++.h>
using namespace std;
class Solution {
private:
vector<int>ans;
vector<vector<int>>res;
vector<bool>used;
bool cmp(int a, int b)
{
return a > b;
}
bool permutation(vector<int>nums, int index, int n,int a,int b,int c,int d)
{
if (a>n/||b>n/||c>n/||d>n/)
return false;
if (index==nums.size()&&a==b&&c==d&&b==c)
{
return true;
}
return permutation(nums, index + , n, a + nums[index], b, c, d) || permutation(nums, index + , n, a, b + nums[index], c, d) || permutation(nums, index + , n, a, b, c + nums[index], d) || permutation(nums, index + , n, a, b, c, d + nums[index]);
}
public:
bool makesquare(vector<int>& nums) {
if (nums.size() == )
return false;
int sum=;
int i;
sort(nums.rbegin(),nums.rend());
for (i = ; i < nums.size(); i++)
{
sum += nums[i];
}
if (sum % != ||nums[nums.size()-]>sum/)
return false;
return permutation(nums, , sum,,,,);
}
};
最新文章
- xamarin UWP ActivityIndicator
- android上下文菜单
- Cobbler批量安装Ubuntu/CentOS系统
- 手机号码js正则验证
- android studio只能全部提示设置
- iText导出pdf、word、图片
- JSP动作学习一
- 【ZOJ】【3329】One Person Game
- 关于Core Data的一些整理(五)
- apache 配置文件管理
- SQL 网文链接
- 04_Weblogic之受管服务器:配置受管服务器,启动受管服务器,解决因为强制关闭Weblogic之后导致启动有问题的问题,配置boot.properties
- SpringContextHolder 静态持有SpringContext的引用
- JavaScript的3种继承方式
- 关于我学XSS躺过的那些坑
- Java设计模式(10)代理模式(Proxy模式)
- MySQL Crash Course #15# Chapter 23. Working with Stored Procedures
- POJ 3320 Jessica&#39;s Reading Problem 尺取法/map
- POJ 1386 Play on Words(欧拉路)
- Spring Cloud学习入门路线方案
热门文章
- 依赖: nginx-common (= 1.14.0-0ubuntu1) 但是它将不会被安装
- PHP微信支付开发
- [No0000180]改善C#程序的建议8:避免锁定不恰当的同步对象
- SQL Fundamentals || Oracle SQL语言
- 【数论】Prime Time UVA - 10200 大素数 Miller Robin 模板
- 内存proc详解
- 用NFS挂载root出现:NFS: failed to create MNT RPC client, status=-101(-110)
- mongodb丢失数据的原因剖析 - 迎风飘来的专栏 - CSDN博客 https://blog.csdn.net/yibing548/article/details/50844310
- 如何实现浏览器向服务器伪造refer?
- 类中的函数带有self,不带self的区别