当前位置: 首页 > news >正文

Golang | Leetcode Golang题解之第365题水壶问题

题目:

题解:

type pair struct {x, y int
}func canMeasureWater(jug1Capacity int, jug2Capacity int, targetCapacity int) bool {//剪枝if jug1Capacity+jug2Capacity < targetCapacity {return false}var (dfs func(x, y int) bool   // jug1有x水,jug2有y水 能否达到targetvis = make(map[pair]bool) // 记忆化)dfs = func(x, y int) bool {//记忆化p := pair{x, y}if vis[p] {return false}vis[p] = true//x、y组合就是答案if x == targetCapacity || y == targetCapacity || x+y == targetCapacity {return true}//x、y分别装满、倒空if dfs(jug1Capacity, y) || dfs(0, y) || dfs(x, jug2Capacity) || dfs(x, 0) {return true}//x、y分别倒对方里x2y := min(x, jug2Capacity-y)y2x := min(y, jug1Capacity-x)return dfs(x-x2y, y+x2y) || dfs(x+y2x, y-y2x)}return dfs(0, 0)
}

http://www.mrgr.cn/news/8838.html

相关文章:

  • 驾驭ASP.NET MVC:C# Web开发的精粹
  • DOM的概念及作用
  • Spring模块详解Ⅱ
  • 常用设计模式
  • 输入x的值,计算x的平方并赋值给y 分别以 y = x * x和 x * x = y 的形式输出x和y的值。
  • 零基础5分钟上手亚马逊云科技-利用MQ为应用解耦
  • ansible模块
  • 力扣:二叉树的前序遍历
  • ubuntu20.04配置open3D(C++常用API安装)
  • 【STM32】看门狗
  • 超分CAMixerSR 使用笔记
  • OCC笔记:Windows下OCC的编译
  • HTML标签入门篇(1)——标题标签、段落标签、换行标签、水平线标签、图片标签、文本标签
  • HTML 基本语法特性与 title 标签介绍
  • 50道深度NLP和人工智能领域面试题+答案
  • MySQL 系统学习系列 - MySQL 概述与 DDL 语句的使用《MySQL系列篇-01》
  • 私有仓库tomcat镜像构建
  • <数据集>斯坦福狗狗识别数据集<目标检测>
  • 算法(滑动窗口问题)
  • 【diffusers 下载】access token 使用方法总结