火柴拼正方形
时间:2021-08-04
本文章向大家介绍火柴拼正方形,主要包括火柴拼正方形使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目链接:https://leetcode-cn.com/problems/matchsticks-to-square/
题目描述:
题解:
class Solution {
public:
bool makesquare(vector<int>& matchsticks) {
vector<bool> used(matchsticks.size(), false);
int sum = 0;
for(auto &item : matchsticks)
{
sum += item;
}
if(sum % 4 != 0)
return false;
int target = sum / 4;
sort(matchsticks.begin(), matchsticks.end());
return trackingBack(matchsticks, 0, 0, target, 4, used);
}
bool trackingBack(vector<int>& matchsticks,int index, int pathSum, int target, int k, vector<bool>& used)
{
if(k == 0)
return true;
if(pathSum == target)
return trackingBack(matchsticks, 0, 0, target, k - 1, used);
for(int i = index; i < matchsticks.size() && matchsticks[i] + pathSum <= target; i++)
{
if(used[i] == true)
continue;
if(i > 0 && matchsticks[i] == matchsticks[i - 1] && used[i - 1] == false)
continue;
pathSum += matchsticks[i];
used[i] = true;
if(trackingBack(matchsticks, i + 1, pathSum, target, k, used))
return true;
pathSum -= matchsticks[i];
used[i] = false;
}
return false;
}
};
原文地址:https://www.cnblogs.com/ZigHello/p/15100860.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spring全家桶之SpringData——Spring 整合Hibernate与Hibernate Jpa
- MyCat练手项目以及简单分页功能实现
- Redis在分布式项目中的应用
- 常见的Form表单提交方式
- 基于RPC实现服务的注册、发布和消费
- HttpClient技术
- JsonP------实现跨域请求
- ActiveMQ—基于Java的消息传递服务器
- SpringMVC知识体系搭建
- 你分得清MySQL普通索引和唯一索引了吗?
- 基于Dubbo的CRUD案例
- 在javaEE中,实现用户登陆功能的实现
- JavaEE中,实现登录时进行校验验证码的功能
- JavaEE中为删除数据操作与退出操作添加确认提示框
- JavaWeb中的实现页面跳转的同卵双胞胎兄弟——重定向与请求转发