水壶问题(力扣)数学 JAVA

news2025/4/6 3:01:44

有两个水壶,容量分别为 jug1Capacity 和 jug2Capacity 升。水的供应是无限的。确定是否有可能使用这两个壶准确得到
targetCapacity 升。

如果可以得到 targetCapacity 升水,最后请用以上水壶中的一或两个来盛放取得的 targetCapacity 升水。

你可以:

装满任意一个水壶 清空任意一个水壶 从一个水壶向另外一个水壶倒水,直到装满或者倒空

示例 1:

输入: jug1Capacity = 3, jug2Capacity = 5, targetCapacity = 4
输出: true
解释:来自著名的 “Die Hard”

示例 2:

输入: jug1Capacity = 2, jug2Capacity = 6, targetCapacity = 5
输出: false

示例 3:

输入: jug1Capacity = 1, jug2Capacity = 2, targetCapacity = 3
输出: true

提示:

1 <= jug1Capacity, jug2Capacity, targetCapacity <= 10^6

解题思路:

1、首先俩水壶的水加起来没有要求容量大的话那就没有必要继续看了

2、俩水壶容量大于要求容量,那么最终结果肯定至少有一个水壶没有装满,这就是负数的来源

在这里插入图片描述

3、最终结果变成零之后,若再次装水倒水的话又会变成a - b构成了重复

代码:

class Solution {
    public boolean canMeasureWater(int jug1Capacity, int jug2Capacity, int targetCapacity) {
         if(jug1Capacity + jug2Capacity < targetCapacity) return false;
         int a = Math.max(jug2Capacity, jug1Capacity);
         int b = Math.min(jug2Capacity, jug1Capacity);
         int c = a + b;
         while(c > 0) {
        	 if(c == targetCapacity) return true;
        	 if(c >= b) c = c - b;
        	 else c = c + a;	 
         }
         return false;
    }
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

echarts 横向柱状图

<template><div ref"chart" style"height: 100%"></div> </template><script> import * as echarts from "echarts"; var cate ["质量通病1", "质量通病2", "质量通病3", "质…

LeetCode 热题 100 JavaScript--160. 相交链表

/*** Definition for singly-linked list.* function ListNode(val) {* this.val val;* this.next null;* }*//*** param {ListNode} headA* param {ListNode} headB* return {ListNode}*/// 1、暴力解法 var getIntersectionNode function(headA, headB) {var p1 …

大英博物馆将世界历史带入 The Sandbox 元宇宙

又一个知名的、历史领域合作伙伴加入了我们的元宇宙生态系统&#xff01; 大英博物馆选择 The Sandbox 作为其首次进入元宇宙的合作平台。通过这次合作&#xff0c;我们的用户将能够通过全新的沉浸式体验来探索全球历史。 以下是您需要了解的一切&#xff01; 我们正在与大英…

测试工程师如何利用AIGC高效工作?Chat PDF辅助我们写测试用例和脚本

ChatPDF 是一种基于人工智能的工具&#xff0c;用于将 PDF 文档转换为可交互式的聊天式界面。它能够将静态的 PDF 文件转化为动态的聊天对话框&#xff0c;使用户可以通过对话的形式与文档进行交互。 ChatPDF 可以完成以下工作&#xff1a; 1. 将 PDF 文档转换为聊天式界面&am…

H. HEX-A-GONE Trails 2023“钉耙编程”中国大学生算法设计超级联赛(7)hdu7354

Problem - 7354 题目大意&#xff1a;有一棵n个点的树&#xff0c;A和B分别从点x&#xff0c;y开始&#xff0c;每轮可以移动到一个相邻节点&#xff0c;但如果某个节点有人访问过&#xff0c;则两人都不能访问那个节点&#xff0c;先没有点可走的人输&#xff0c;问A有没有必…

pytest之测试用例执行顺序

前言 在unittest框架中&#xff0c;默认按照ACSII码的顺序加载测试用例并执行&#xff0c;顺序为&#xff1a;09、AZ、a~z&#xff0c;测试目录、测试模块、测试类、测试方法/测试函数都按照这个规则来加载测试用例。 而 pytest 中的用例执行顺序与unittest 是不一样的&#…

CTF流量题解http4.pcapng

流量分析 导出http 打开报错 验证文件头&#xff0c;发现是zip。 图常片见里文可件能的包16含进:压制缩头包部,word,pdf JPG FF D8 FF E0/FF D8 FF E1 PNG 89 50 4E 47 GIF 47 49 46 38 ZIP 50 4B 03 04 RAR 52 61 72 21 MP3 49 44 33 0 改后缀 使用工具爆破。 git clone git…

牛客周赛 Round 6

A 游游的数字圈 题目大意 给定一个由数字字符组成的字符串&#xff0c;统计该字符串中出现的圆圈数量。其中数字0、6、9各有一个圆圈&#xff0c;数字8有两个圆圈。 思路分析 遍历字符串中的每个字符&#xff0c;对于每个字符&#xff0c;判断其是0、6、9则加1&#xff0c;是…

网络安全--mysql中事务锁以及事务隔离解析

一、事务锁 1、个人理解&#xff1a; 专一性和历史性&#xff0c;例如一个男人历史上是花心的&#xff0c;但当他成长后开启begin和update后变的专一了&#xff0c;多项事务也影响不到他了&#xff0c;直到水泥封心&#xff0c;只可被一个人查询在此我们进入正题&#xff1a;…

【代码】表格封装 + 高级查询 + 搜索 +分页器 (极简)

一、标题 查询条件按钮&#xff08;Header&#xff09; <!-- Header 标题搜索栏 --> <template><div><div class"header"><div class"h-left"><div class"title"><div class"desc-test">…

《动手学深度学习》优化算法学习习题

优化算法 梯度下降类 小批量随机梯度下降&#xff0c;通过平均梯度来减小方差 动量法 基础 泄露平均法&#xff1a;用来取代梯度的计算 β \beta β这个参数控制了取多久时间的平均值 上述推理构成了”加速”梯度方法的基础&#xff0c;例如具有动量的梯度。 在优化问题…

SpringMVC的架构有什么优势?——视图与模型(二)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

Codeforces Round 891 (Div. 3)

Array ColoringArray Coloring 题目大意 题目要求判断是否可以将数组元素分为两种颜色&#xff0c;使得两种颜色元素的和具有相同的奇偶性&#xff0c;并且每种颜色至少有一个元素被着色。 思路分析 可以通过统计数组中奇数和偶数的个数来判断是否满足条件。分析可知&#x…

论文阅读---《Unsupervised ECG Analysis: A Review》

题目 无监督心电图分析一综述 摘要 电心图&#xff08;ECG&#xff09;是检测异常心脏状况的黄金标准技术。自动检测心电图异常有助于临床医生分析心脏监护仪每天产生的大量数据。由于用于训练监督式机器学习模型的带有心脏病专家标签的异常心电图样本数量有限&#xff0c;对…

Redis BitMap/HyperLogLog/GEO/布隆过滤器案例

面试问题&#xff1a; 抖音电商直播&#xff0c;主播介绍的商品有评论&#xff0c;1个商品对应了1系列的评论&#xff0c;排序展现取前10条记录用户在手机App上的签到打卡信息&#xff1a;1天对应1系列用户的签到记录&#xff0c;新浪微博、钉钉打卡签到&#xff0c;来没来如何…

模拟实现消息队列项目(系列7) -- 实现BrokerServer

目录 前言 1. 创建BrokerServer类 1.1 启动服务器 1.2 停止服务器 1.3 处理一个客户端的连接 1.3.1 解析请求得到Request对象 1.3.2 根据请求计算响应 1.3.3 将响应写回给客户端 1.3.4 遍历Session的哈希表,把断开的Socket对象的键值对进行删除 2. 处理订阅消息请求详解(补充) …

树、森林 与 二叉树

树、森林 与 二叉树 树结构树结构的基本概念根节点子节点父节点叶节点兄弟节点子树深度高度 树结构的特点二叉树森林查找与遍历方法查找深度优先搜索广度优先搜索 遍历前序遍历中序遍历后序遍历 应用场景 树结构 树结构是一种非常常见且重要的数据结构&#xff0c;它模拟了自然…

中间件RabbitMQ消息队列介绍

1. MQ的相关概念 1.1 什么是MQ MQ&#xff08;message queue&#xff09;&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO先入先出&#xff0c;只不过队列中存放的内容是message而已&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递消息…

Python Opencv实践 - 在图像上绘制图形

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png") print(img.shape)plt.imshow(img[:,:,::-1])#画直线 #cv.line(img,start,end,color,thickness) #参考资料&#xff1a;https://blog.csdn.ne…

【NLP】深入浅出全面回顾注意力机制

深入浅出全面回顾注意力机制 1. 注意力机制概述2. 举个例子&#xff1a;使用PyTorch带注意力机制的Encoder-Decoder模型3. Transformer架构回顾3.1 Transformer的顶层设计3.2 Encoder与Decoder的输入3.3 高并发长记忆的实现self-attention的矩阵计算形式多头注意力&#xff08;…