LeetCode 1954. 收集足够苹果的最小花园周长(数学)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你一个用无限二维网格表示的花园,每一个 整数坐标处都有一棵苹果树。
整数坐标 (i, j) 处的苹果树有 ∣i∣+∣j∣|i| + |j|i+j个苹果。

你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 ,且每条边都与两条坐标轴之一平行。

给你一个整数 neededApples ,请你返回土地的 最小周长 ,使得 至少 有 neededApples 个苹果在土地 里面或者边缘上。

|x| 的值定义为:
如果 x >= 0 ,那么值为 x
如果 x < 0 ,那么值为 -x

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

输入:neededApples = 1
输出:8
解释:边长长度为 1 的正方形不包含任何苹果。
但是边长为 2 的正方形包含 12 个苹果(如上图所示)。
周长为 2 * 4 = 8 。示例 2:
输入:neededApples = 13
输出:16示例 3:
输入:neededApples = 1000000000
输出:5040提示:
1 <= neededApples <= 10^15

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

2. 解题

对称的,考虑 八分之一:坐标为 (0,x),(x,x)(0,x), (x,x)(0,x),(x,x) 的横的边
两点端点共享,只能取一半,x/2,xx/2, xx/2,x
中间可以取到的所有横坐标的和 ∑(1,2,...,x−1)=x∗(x−1)/2\sum(1,2,...,x-1)=x*(x-1)/2(1,2,...,x1)=x(x1)/2,纵坐标的和 x∗(x−1)x*(x-1)x(x1)
所以总的一圈个数为 8∗(x/2+x+x∗(x−1)/2+x∗(x−1))=12x28*(x/2+x+x*(x-1)/2+x*(x-1))=12x^28(x/2+x+x(x1)/2+x(x1))=12x2

class Solution {
public:long long minimumPerimeter(long long neededApples) {long long x = 0, sum = 0;while(sum < neededApples){x++;sum += 12*x*x;}return x<<3;}
};

12 ms 5.8 MB C++

在这里插入图片描述


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

python api数据接口_python写数据api接口

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

java星座测试需求分析_java十二星座 (快来测试你是什么星座吧)

无聊写个十二星座。。我发现我好像都是无聊的时候学习的。。。package 十二星座;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class 十二星座 {public static void main(String args[]){new Fram();}}class Fram extends JFrame implements Action…

【转载】Ubuntu终端常用的快捷键

Ubuntu中的许多操作在终端&#xff08;Terminal&#xff09;中十分的快捷&#xff0c;记住一些快捷键的操作更得心应手。在Ubuntu中打开终端的快捷键是CtrlAltT。其他的一些常用的快捷键如下&#xff1a; 快捷键功能Tab自动补全Ctrla光标移动到开始位置Ctrle光标移动到最末尾Ct…

LeetCode 1953. 你可以工作的最大周数

文章目录1. 题目2. 解题1. 题目 给你 n 个项目&#xff0c;编号从 0 到 n - 1 。 同时给你一个整数数组 milestones &#xff0c;其中每个 milestones[i] 表示第 i 个项目中的阶段任务数量。 你可以按下面两个规则参与项目中的工作&#xff1a; 每周&#xff0c;你将会完成 …

vim查找关键字_VIM学习笔记 对话框(Dialog)

查找对话框使用以下命令&#xff0c;将会打开一个查找对话框&#xff1a;:promptfind [string]如果在命令中指定了[string]值&#xff0c;那么就会查找该字符串&#xff1b;如果没有指定[string]值&#xff0c;那么将会查找上次搜索的字符串。替换对话框使用以下命令&#xff0…

oldboy_09_03day

1、split 分割 2、内置函数 __name__ ------- 主动执行还是被其他程序调用&#xff1b; 本程序内 __name__ 值为 __main__ ;其他程序调用时&#xff0c;__文件名__ __file__ 当前文件路径、是文件的相对路径 __doc__ 当前程序说明文档 3、函数 def、形式参数 def test( a,*b)…

LeetCode 1952. 三除数

文章目录1. 题目2. 解题1. 题目 给你一个整数 n 。如果 n 恰好有三个正除数 &#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 如果存在整数 k &#xff0c;满足 n k * m &#xff0c;那么整数 m 就是 n 的一个 除数 。 示例 1&#xff1a; 输入&#xff…

Java充电宝模型设计_继续探讨点赞功能模块设计

继续探讨点赞功能模块设计前几天我们设计了点赞模块的模块&#xff0c;大致思路就是&#xff1a;用户点赞&#xff0c;首先缓存到redis中进行保存&#xff0c;redis中既要保存点赞总数&#xff0c;还要保存点赞记录。然后定时执行redis数据到数据库中。但是&#xff0c;今天在资…

python可变参数函数二阶导数公式_python中函数的可变参数

简介 INTRODUCTION一、【其实已经用过】可变参数 二、可变参数普通参数 结合用法1 三、知识要点总结强调知识回顾&#xff1a;1.函数关键字参数2.函数的参数的默认值。必须从右边写到左边。一、【其实已经用过】可变参数回顾系统自带的可变参数函数print#系统自带的可变参数函数…

mysql root用户密码个性

对名为“mysql”数据库下的表“user”进行操作如下语句&#xff1a;update user set passwordPASSWORD("your_password") where user"root"转载于:https://www.cnblogs.com/netcorner/p/4529613.html

LeetCode 1957. 删除字符使字符串变好

文章目录1. 题目2. 解题1. 题目 一个字符串如果没有 三个连续 相同字符&#xff0c;那么它就是一个 好字符串 。 给你一个字符串 s &#xff0c;请你从 s 删除 最少 的字符&#xff0c;使它变成一个 好字符串 。 请你返回删除后的字符串。题目数据保证答案总是 唯一的 。 示…

广度优先遍历_LeetCode | 广度优先遍历

阅读本文大约需要 4 分钟概述前言429 N 叉树的层次遍历 90.36%102 二叉树的层次遍历 99.76%后记前言不管经济多不好&#xff0c;提高自身硬实力才是关键。本文由一个骚包程序猿zone7撰写&#xff0c;欢迎关注。429 N 叉树的层次遍历 90.36%给定一个 N 叉树&#xff0c;返回其节…

c写成php的扩展_用C语言编写PHP扩展

1&#xff1a;预定义vi myfunctions.defstring self_concat(string str, int n)2&#xff1a;到PHP源码目录的ext目录#cd /usr/local/php-5.4.0/ext/执行命令&#xff0c;生成对应扩展目录#./ext_skel --extnamecaleng_module --proto/home/hm/caleng_module.def./ext_skel --e…

LeetCode 1958. 检查操作是否合法(模拟)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的 8 x 8 网格 board &#xff0c;其中 board[r][c] 表示游戏棋盘上的格子 (r, c) 。 棋盘上空格用 . 表示&#xff0c;白色格子用 W 表示&#xff0c;黑色格子用 B 表示。 游戏中每次操作步骤为&#xff1a;选择一个空格…

php获取周几,php怎么获得星期几

php怎么获得星期几2021-03-07 15:06:02php获得星期几的方法&#xff1a;首先创建一个PHP示例文件&#xff1b;然后定义一个数组&#xff1b;最后通过“echo "星期".$weekarray[date("w")];”方式获得星期几即可。本文操作环境&#xff1a;Windows7系统、PH…

电脑假死卡的动不了_最近遇到奇怪电脑问题(实战篇)

点击蓝字关注我们话不多扯&#xff0c;说事最近遇到奇怪电脑问题装的是7系统32位开机可以进入系统插着网线开机&#xff0c;就假死拔掉网线开机&#xff0c;正常&#xff0c;然后插上网线依旧正常再带着网线关机&#xff0c;开机后又成假死假死后拔下网线依旧恢复不了必须是不插…

HTTP Post

// testHttp003.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h"// webrequest.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <string> #include <fstream> #include <winsock2.h> #include <std…

LeetCode 1961. 检查字符串是否为数组前缀

文章目录1. 题目2. 解题1. 题目 给你一个字符串 s 和一个字符串数组 words &#xff0c;请你判断 s 是否为 words 的 前缀字符串 。 字符串 s 要成为 words 的 前缀字符串 &#xff0c;需要满足&#xff1a;s 可以由 words 中的前 k&#xff08;k 为 正数 &#xff09;个字符…

php怎样加速,php 提速

php 提速2007-08-13 10:06这篇杂文翻译整理自网络各路文档资料(见最末的参考资料)&#xff0c;尤其是 Ilia Alshanetsky (佩服之至) 在多个 PHP 会议上的演讲&#xff0c;主要是各类提高 PHP 性能的技巧。为求精准&#xff0c;很多部分都有详细的效率数据&#xff0c;以及对应的…

ios UIScrollView 基础属性

转 UIScrollView 原理 在滚动过程当中&#xff0c;其实是在修改原点坐标。当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件&#xff0c;那么 scroll view 发送 tracking events 到被点击的 subview。假如在计时器到点前发…