算法----火柴拼正方形

news/2024/5/8 10:59:55/文章来源:https://blog.csdn.net/u013270444/article/details/129707125

题目

你将得到一个整数数组 matchsticks ,其中 matchsticks[i] 是第 i 个火柴棒的长度。你要用 所有的火柴棍 拼成一个正方形。你 不能折断 任何一根火柴棒,但你可以把它们连在一起,而且每根火柴棒必须 使用一次 。

如果你能使这个正方形,则返回 true ,否则返回 false 。

示例 1:
在这里插入图片描述

输入: matchsticks = [1,1,2,2,2]
输出: true
解释: 能拼成一个边长为2的正方形,每边两根火柴。
示例 2:

输入: matchsticks = [3,3,3,3,4]
输出: false
解释: 不能用所有火柴拼成一个正方形。

提示:

1 <= matchsticks.length <= 15
1 <= matchsticks[i] <= 108

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/matchsticks-to-square
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解决方法

    fun makesquare(matchsticks: IntArray): Boolean {val sum = matchsticks.sum()if (sum % 4 != 0) {return false}val edges = IntArray(4) { 0 }//为什么逆序排了一下 效率这么高?matchsticks.sortDescending()return dfs(0, matchsticks, edges, sum / 4)}private fun dfs(index: Int, matchsticks: IntArray, edges: IntArray, length: Int): Boolean {if (index == matchsticks.size) {return true}for (i in 0..3) {if (edges[i] + matchsticks[index] > length) {continue}edges[i] += matchsticks[index]if (dfs(index + 1, matchsticks, edges, length)) {return true}edges[i] -= matchsticks[index]}return false}

总结

1.算法就是把不同的问题,转换成熟悉的模型去解决。要学会数学归纳
2.DFS真的是一个必须掌握的
3.日子一天一天过,没有特别精彩,也没有特别难过

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_274764.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Junit单元测试框架

1)Junit是一个开源的JAVA语言的单元测试框架&#xff0c;也是JAVA方向使用最广泛的单元测试框架&#xff0c;使用JAVA开发者都应该学习junit框架&#xff0c;并且掌握单元测试的编写 2)selenium和Junit都可以被导入到maven项目里面 3)先进行创建maven项目&#xff0c;导入相关依…

linux 全局环境变量删除后 还有 仍然存在

linux 全局环境变量删除后 还有 仍然存在1、编辑 /etc/profile2、设置REDISCLI_AUTH后&#xff0c;redis-cli 进去redis后不需要再次认证2、删除全局环境后 source后 仍然存在3、unset释放全局环境变量4、总结1、编辑 /etc/profile 设置redis环境变量 在末尾加入一行 export R…

家电企业数字工厂系统解决方案

国内小型家电生产商的中小企业普遍使用传统的手工作业模式&#xff0c;依靠大量的人力&#xff0c;线下管理各种数据&#xff0c;如&#xff1a;纸质文档、excel制作等&#xff0c;信息化程度非常低&#xff0c;严重限制着企业生产效率的提升和生产规模的扩大。对传统制造企业来…

基于WEB的网上购物系统的设计与实现(附:源码 论文 sql文件)

摘 要 随着计算机网络技术的飞速发展和人们生活节奏的不断加快&#xff0c;电子商务技术已经逐渐融入了人们的日常生活当中&#xff0c;网上商城作为电子商务最普遍的一种形式&#xff0c;已被大众逐渐接受。因此开发一个网上商城系统&#xff0c;适合当今形势&#xff0c;更加…

AWS白皮书 – 成本优化

本文讲解AWS良好架构框架&#xff08;AWS Well-Architected Framework&#xff09;里其中五大支柱之一&#xff1a;成本优化&#xff08;Cost Optimization&#xff09;。 一套成本优化型系统应充分利用全部资源、以最低价格来实现业务成果&#xff0c;同时充分满足你的功能需…

Google Bard VS ChatGPT:哪个是更好的AI聊天机器人?

文章目录前言一、Bard和ChatGPT的宏观对比二、应用场景不同三、知识的时效性四、未来的归宿总结前言 自从 OpenAI 向公众发布ChatGPT以来的过去几个月里&#xff0c;我们都见证了围绕 ChatGPT 的各种测评&#xff0c;并为它带来的效果感到惊艳。 昨晚Google开放了自家研发的A…

SpringBoot的简介和使用

文章目录1. SpringBoot简介和概述2. SpringBoot的使用3.SpringBoot 项目打包及运行4.切换web服务器1. SpringBoot简介和概述 Spring Boot是由Pivotal团队提供的一套开源框架&#xff0c;可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持&#xff0c;可以帮助开…

JUC并发编程共享模型之不可变(五)

5.1 问题引出 public interface Account {// 获取余额Integer getBalance();void withdraw(Integer amount);/*** 方法内会启动1000个线程&#xff0c;每个线程做-10元的操作* 如果初始余额为 10000 那么正确的结果应当是0*/static void demo(Account account){List<Thread…

整数拼接(思维枚举,两变量满足某条件-->通过其中一变量根据条件推断另一变量

2068.整数拼接&#xff08;思维&#xff0c;枚举&#xff09; 输入样例&#xff1a; 4 2 1 2 3 4输出样例&#xff1a; 6大佬思路 很多需要双重循环两个值&#xff0c;暴力判断组合在一起是否满足某个条件(比如等式是否成立)&#xff0c; 其实可以换个角度&#xff0c;遍历…

WPF中阴影效果和模糊效果的使用

总目录 文章目录总目录前言一、DropShadowEffect1、DropShadowEffect各属性效果图2、实现代码二、BlurEffect1、BlurEffect各属性效果图2、实现代码3、进阶使用结语前言 WPF中的控件效果主要通过Effect来实现&#xff0c;而Effect有DropShadowEffect&#xff08;投影效果&…

【并发】详解redis的incr、decr命令

一、前言 redis是一个单线程的服务&#xff0c;那么所有的命令肯定会排队被redis执行&#xff0c;redis提供的命令都是原子性的&#xff0c;百度搜索incr\decr就是说将对应的key1&#xff0c;key-1的值重新set到redis中&#xff0c;而且很多都是认为incr\decr原子性的&#xf…

chatgpt优化使用手册

提问方式的优化 我们在首次使用chatgpt的时候&#xff0c;当我们问它一些问题的时候&#xff0c;我们会发现它的有些回答广泛且空洞&#xff0c;不够专业&#xff0c;但是chatgpt是能实现角色的扮演和切换的&#xff0c;所以我们在提问它时需要先给它输入一些剧本&#xff0c;…

激活函数σ、tanh、relu、Leakyrelu

激活函数1- SIgmoid1-1 sigmoid导数2- tanh2-1 tanh函数导数3- ReLU4- LeakyReLu5- LR 公式推导Sigmoid、tanh、ReLU、LeakyReLu1- SIgmoid sigmoid 函数将元素的值映射到0和1之间 sigmoid(x)11exp(−x)sigmoid(x)\frac{1}{1exp(-x)}sigmoid(x)1exp(−x)1​ import torch imp…

leetcode 2492. Minimum Score of a Path Between Two Cities(两个城市间路径的最小score)

定义roads数组&#xff0c;每个元素长度为3&#xff0c;具体为[from, to, 该条road的distance], 其中road是双向的&#xff08;也就是无向图&#xff09;&#xff0c;可以走多次&#xff08;走不通可以折回来&#xff09;&#xff0c; 需要找的是城市1到城市n的路径中&#xff…

测试用例的价值与体系(软件测试入门)

1.测试用例概念&#xff1a; 测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期的结果的文档通过大量的测试用例来检验软件的运行效果它是指导测试工作进行的依据2.测试用例价值 指导测试的实施规划测试数据的准备编写测试脚本的"设计规格说明书…

记一次 rr 和硬件断点解决内存踩踏问题

在日常的调试过程中&#xff0c;我们总会遇到一些有趣的 bug&#xff0c;在本文我就遇到了一个有意思的查询结果不一致问题。 故事的开始 我们在测试 NebulaGraph 的 MATCH 语句的时候发现一个很神奇的事情&#xff1a; (rootnebula) [gdlancer]> match (v1)-[e*1..1]-&g…

【分布式-4】zookeeper

一&#xff1a;基本概念 角色&#xff1a; Leader&#xff1a;提供读写follower&#xff1a;提供读操作&#xff0c;参与Leader选举和过半写成功策略。observer&#xff1a; 只提供读&#xff0c;通常情况下&#xff0c;通过client端连接zk集群性能都不错&#xff0c;但是如果…

旅行商问题的粒子群优化

英文标题&#xff1a;Optimization of Particle Swarms for Travelling Salesman Problem摘要&#xff1a;旅行推销员问题是原子种群优化在本研究中的一个应用。我们已经开发了几种新的技术&#xff0c;旨在用粒子群算法解决TSP问题。此外&#xff0c;我们引入了交换操作和交换…

【k8s】k8s部署mariadb数据库

文章目录前言&#xff1a;一、构建mariadb的dockerfile二、docker build打包并上传到harbor仓库三、编写yaml文件四、使用kubectl apply部署到K8s总结前言&#xff1a; MariaDB数据库管理系统是MySQL的一个分支&#xff0c;主要由开源社区在维护&#xff0c;采用GPL授权许可 M…

5.网络爬虫——Xpath解析

网络爬虫——Xpath解析Xpath简介Xpath解析节点选择路径表达式谓语未知节点Xpath实战演示豆果美食实战获取数据源代码前言&#xff1a; &#x1f4dd;​&#x1f4dd;​此专栏文章是专门针对Python零基础爬虫&#xff0c;欢迎免费订阅&#xff01; &#x1f4dd;​&#x1f4dd;…