LeetCode第 252 场周赛 之5187. 收集足够苹果的最小花园周长

  • 前言
    • 一,5187. 收集足够苹果的最小花园周长
    • 二,解题思路
    • 三, 代码
  • 总结

)


前言

数学知识

一,5187. 收集足够苹果的最小花园周长

给你一个用无限二维网格表示的花园,每一个 整数坐标处都有一棵苹果树。整数坐标 (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 <= 1015

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

二,解题思路

一个项限推理找规律

上面推理一个象限的公式 只需要乘以4就可以了

N⃗\vec NN ⟹\Longrightarrow⟹ [nw−1n_{w - 1}nw−1​+nw−2n_{w - 2}nw−2​+ …+ n1n_1n1​]

一个象限中全部的值: N⃗\vec NN * (2n -1)

全部象限中的值是 : S(n)S(n)S(n) = N⃗\vec NN * (2n -1) * 4

公式: S(n)S(n)S(n) = N⃗\vec NN * (2n -1) * 4

三, 代码

long long minimumPerimeter(long long neededApples)
{long long ans = 0;  long long need = 0;for (long long  i  = 1; i < 1e15+1; ++i){//一个象限中 (1 + 2 + ... + n) need +=i;ans =   (need * (2* i +1)) * 4 ;if ( ans >= neededApples) {return i * 8;}}return ans;
}

总结

时间复杂度O(N)O(N)O(N)

源码地址:https://github.com/chensongpoixs/cleet_code

LeetCode第 252 场周赛 之5187. 收集足够苹果的最小花园周长相关推荐

  1. 5187. 收集足够苹果的最小花园周长

    给你一个用无限二维网格表示的花园,每一个 整数坐标处都有一棵苹果树.整数坐标 (i, j) 处的苹果树有 |i| + |j| 个苹果. 你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 ,且每 ...

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

    文章目录 1. 题目 2. 解题 1. 题目 给你一个用无限二维网格表示的花园,每一个 整数坐标处都有一棵苹果树. 整数坐标 (i, j) 处的苹果树有 ∣i∣+∣j∣|i| + |j|∣i∣+∣j∣ ...

  3. LeetCode第 227 场周赛题解

    LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-an ...

  4. LeetCode 第 194 场周赛

    LeetCode 第 194 场周赛 数组异或操作 思路和代码 保证文件名唯一 思路及代码 避免洪水泛滥 思路及代码 找到最小生成树里的关键边和伪关键边 思路及代码 这次周赛比以往难很多. 数组异或操 ...

  5. LeetCode第187场周赛(Weekly Contest 187)解题报告

    差点又要掉分了,还好最后几分钟的时候,绝杀 AK.干巴爹!!! 第一题:思路 + 模拟暴力. 第二题:线性扫描. 第三题:双指针(滑动窗口) + 优先队列. 第四题:暴力每一行最小 k 个 + 优先队 ...

  6. Acwing第72场周赛+Leetcode第314场周赛

    Acwing第72场周赛 第一题:AcWing 4624. 最小值 分析:向下取整可以用到math.h头文件中的floor()函数,最后输出时套用两个min()函数求三个数的最小值即可. 代码: #i ...

  7. Leetcode第 310 场周赛 补打

    Leetcode 第310场周赛 自己赛后打了一下,记录了一下时间,大概15min A 3题,第四题是写不出来,然后学习了一天线段树(真的强). 思路: 1.排序后统计偶数的数目 2.遍历扫一遍,用直 ...

  8. LeetCode第176场周赛(Weekly Contest 176)解题报告

    又是一周掉分之旅,我发现,LeetCode周赛的数据好水,所以有的时候,实在没思路,先暴力解决试试(即使分析出时间复杂度会超时),比如第二题和第三题都可以暴力通过,GG思密达. 这周主要使用了数据结构 ...

  9. Leetcode第321场周赛补题

    Leetcode第321场周赛补题 第一题:6245. 找出中枢整数 - 力扣(LeetCode) 分析:由于数组中是差值为1的等差数列,所以可以直接用等差数列求和公式的朴素法更加简便的解决这题,,其 ...

  10. [算法]LeetCode第194场周赛202006021

    第194场周赛 20200621 1486. 数组异或操作 题目描述1 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 ...

最新文章

  1. Cocos2d-x的坐标系统
  2. 设计模式中必须知道的一些原则
  3. java 抽象类,接口,object类详解
  4. 淘淘商城项目过程记录
  5. 一张图告诉你E-R图怎么画
  6. P3375 【模板】KMP字符串匹配
  7. 学成在线--19.新增课程(数据字典)
  8. 必知!4张图看尽AI发展史重大里程碑
  9. 十二、十三天总结笔记
  10. cve-2020-0796_CVE20200796 | Windows SMBv3客户端/永痕之黑漏洞复现
  11. 学了c再自学python_学过一学期c语言的情况下如何自学python?
  12. 【MODBUS】组态王通过串口与MODBUS RTU设备通讯
  13. newifimini出厂固件_newifi 新路由 mini用哪个Pandora固件
  14. Hdu--5064(DP)
  15. 淘宝母婴商品分析-Python
  16. 国庆节,一天开发一个小程序+Web系统。2.5K到手。【分享开发经验】【收藏起来】
  17. STM32F1基于H桥的电机控制程序分析
  18. mysql scn_Oracle scn之基本概念
  19. 计算机病毒带来主要危害,计算机病毒的危害有哪些【详细介绍】
  20. DataPipeline携手世界五百强地产企业,提升数据流动性释放新动能

热门文章

  1. 手机java时代浏览器_巅峰之战 三款最热java手机浏览器横评
  2. 笔记本的无线网卡驱动服务器,无线网卡驱动,详细教您怎么笔记本无线网卡驱动...
  3. 【git】git的删除命令与如何删除仓库文件的方法
  4. 2021计算机夏令营经验分享(西交软院、南开计算机、中南计算机、南京大学计算机、华东师大数据学院、上交电院直博、国防科大计算机、上科大)
  5. 清华大学的计算机课程表,清华大学计算机专业课程表
  6. 软件项目确立的几个步骤
  7. 重复独立事件,伯努利概型 (概统1)
  8. 用wget命令从FTP服务器下载数据
  9. 深度系统linux deepin如何按装,安装深度Deepin 15.11操作系统的方法
  10. mysql五日均线_终于有人把“5日均线做短线”的精髓讲透了!