题目

解答

思路

由于每层只能用一块或两块砖来摆,那么每层的长度只有两种情况:
(1)数组最大值
(2)数组最大值 + 数组最小值
推论 :
如果数组长度为奇数,则每层长度为数组最大值
如果数组长度为偶数,则每层长度为数组最大值 + 数组最小值

代码

public class Solution {public int backAll(int[] arr) {if (null == arr || arr.length == 0) {return 0;}Arrays.sort(arr);if (arr.length % 2 == 1) {return backAll(arr, arr[arr.length - 1]);} else {return backAll(arr, arr[arr.length - 1] + arr[0]);}}public int backAll(int[] arr, int target) {int level = 0;int left = 0;int right = arr.length - 1;while (left <= right) {if (arr[right] == target) {++level;--right;} else if (left < right && arr[left] + arr[right] == target) {++left;--right;++level;} else {return -1;}}return level;}
}

左程云 - 大厂刷题班 - 摆砖块相关推荐

  1. 左程云 - 大厂刷题班 - 绳子覆盖最多的点

    题目 解答 解法1 时间复杂度O(n * logn) 二分法 思路 以数组的每一个点为绳子的末尾点,二分查找绳子中末尾点减绳子长度的点(起始点),结果为末尾点的坐标 - 起始点的坐标 + 1 注:二分 ...

  2. B站左程云算法视频高级班01

    题目1:给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要不能用非基于比较的排序 [               ]假设是长度为9的数组 首先遍历数组 找出min 和 ma ...

  3. B站左程云算法视频高级班05

    题目一:在一个无序数组中,求第k小的数 快排:荷兰国旗问题 BFPRT 有讲究的选择一个数 之后的步骤和快排一样 假设整个方法叫f函数 f(arr, k) 1)0~4一组 5~9一组 0~14一组 剩 ...

  4. 一周刷爆LeetCode,算法da神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记

    一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记 教程与代码地址 P1 出圈了!讲课之外我们来聊聊 ...

  5. 一看“左程云:200道算法与数据结构”,二刷“阿里云:70+算法题、30种大厂笔试高频知识点”,3月过去终于挺进我梦中的字节!

    不管是学生还是已经工作的人,我想彼此都有一个相同的梦想:进大厂! 眼看着2020年还有个三十来天就要完美收尾了,那么如何才能在未来三个月弯道超车赶上"金三银四的春招",进入梦寐以求 ...

  6. 左程云基础班——二叉树

    左程云基础班--二叉树 1. 遍历二叉树 二叉树结点: public class Node {public int value;public Node left;public Node right;p ...

  7. 数据结构与算法XS班-左程云第八节课笔记(归并排序和快速排序)

    第8节 归并排序和快速排序 ##这是数据结构与算法新手班-左程云第八节课的笔记## 归并排序 归并排序实际上是一个很经典的排序方法,时间复杂度o(N*logN). 递归版本(图解排序算法(四)之归并排 ...

  8. 数据结构与算法XS班-左程云第一节课笔记(位运算、算法是什么、简单排序)

    第1节 位运算.算法是什么.简单排序 ##这是数据结构与算法新手班-左程云第一节课的笔记## 1. 位运算 // 你们会不会表示一个数字的32位啊? // Java中int类型默认以32位二进制数在计 ...

  9. CSDN专访左程云,算法之道

    算法的庞大让很多人畏惧,程序员如何正确的学习并应用于面试.工作中呢?今天,CSDN邀请了IBM软件工程师.百度软件工程师.刷题5年的算法热爱者左程云,来担任CSDN社区问答栏目的第二十六期嘉宾,届时会 ...

最新文章

  1. datagridview 点击列标题排序
  2. 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业...
  3. apache配置文件详解与优化
  4. python扫描端口脚本_python写的端口扫描脚本
  5. std::string的resize()与reserve()的区别
  6. 排序方法总结C++实现
  7. 当画面出现问题时,如何调试!
  8. OSPF报文分类与格式
  9. Python新手学习基础之条件语句——elif语句
  10. git小乌龟拉取分支代码
  11. 思科交换机配置试题_思科交换机基本配置命令全集
  12. 武汉大学计算机学院 毕业答辩,【2017年整理】毕业与答辩ppt模板武汉大学.ppt
  13. Win10 磁盘被写保护 请去掉写保护或使用另一张磁盘
  14. android学习笔记-连接新大陆物联网云平台控制stm32
  15. 如何才能高效学习,99%的人不知道的高效学习法
  16. socket网络通信实现与优化
  17. rust怎么建柱子_原神慈盐之末任务怎么做?原神钟离传说任务的方碑柱子点亮顺序...
  18. 笔记Mac下配置nginx+rtmp模块推流服务器碰到的问题:Error: This tap is now empty as all its formulae were migrated
  19. 带plx芯片的服务器主板,主板上面都有啥?常见板载芯片功能介绍(三)
  20. 安徽大学计算机学院 张磊,安徽大学张磊在光学自由曲面高精度干涉检测领域取得进展...

热门文章

  1. update多表联合更新
  2. 人民币趣味品--收藏新宠
  3. 异步复位同步释放 打两拍
  4. scanf,sscanf高级用法
  5. 51青海湖,鸟岛,塔尔寺旅游攻略
  6. 【JS逆向系列】某乎x96参数与jsvmp初体验
  7. commons-email邮件工具类的基本使用
  8. Email开发初步总结
  9. c语言程序设计 李俊,深入浅出C语言程序设计(第2版)习题集和编程指导
  10. C语言程序设计第三版崔武子,清华大学出版社-图书详情-《C语言程序设计教程学习辅导》...