9.10---堆箱子问题(CC150)
1,牛客网的解题思路:其实这就是求一个最长的递增子序列。 以某一个箱子结尾的最大高度=放在它上面的所有类型中高度最大的那个+他自己的高度。
import java.util.*;
public class Box {
public int getHeight(int[] w, int[] l, int[] h, int n) {
// write code here
for (int i = 0; i < w.length; i ++) {
for (int j = 1; j < w.length - i; j ++) {
if (w[j] < w[j-1]) {
swap(w,j,j-1);
swap(l,j,j-1);
swap(h,j,j-1);
}
}
}
int[] dp = new int[n];
dp[0] = h[0];
int max = dp[0];
for (int i = 1; i < n; i ++) {
int maxHeight = 0;
dp[i] = h[i];
for (int j = i - 1; j >= 0; j --) {
if (w[j] < w[i] && l[j] < l[i]) {
if (dp[j] > maxHeight) {
maxHeight = dp[j];
}
}
}
dp[i] += maxHeight;
if (dp[i] > max) {
max = dp[i];
}
}
return max;
}
public void swap (int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
9.10---堆箱子问题(CC150)的更多相关文章
- ACM_堆箱子咯(栈)
堆箱子咯 Time Limit: 2000/1000ms (Java/Others) Problem Description: 双十一大家都在买买买,可忙坏了快递小哥了.zl和皮卡鸡在大伙在剁手的时候 ...
- 二刷Cracking the Coding Interview(CC150第五版)
第18章---高度难题 1,-------另类加法.实现加法. 另类加法 参与人数:327时间限制:3秒空间限制:32768K 算法知识视频讲解 题目描述 请编写一个函数,将两个数字相加.不得使用+或 ...
- C++ 堆 和 堆 分析
[摘要] 堆和栈,即是数据结构,又是分配存储空间的不同方式.在数据结构上.堆是树型层次结构,结点按keyword次序排列,经常使用的堆为二叉堆:栈是一种先进后出的数据结构.在内存分配上的堆和栈,首要差 ...
- 在JS中关于堆与栈的认识function abc(a){ a=100; } function abc2(arr){ arr[0]=0; }
平常我们的印象中堆与栈就是两种数据结构,栈就是先进后出:堆就是先进先出.下面我就常见的例子做分析: main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main( ...
- C语言堆栈入门——堆和栈的区别
来看一个网上很流行的经典例子: main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = "abc& ...
- stm32 堆和栈(stm32 Heap & Stack)【worldsing笔记】
关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的. 那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘: 刚接手STM32时,你只编写一个 int main() ...
- 关于c语言中栈和堆释放的问题
#include<iostream> #include<string> using namespace std; int main() { string st; cin> ...
- stm32 堆和栈(stm32 Heap & Stack)
关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的. 那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘: 刚接手STM32时,你只编写一个 int main() { whil ...
- java数据结构----堆
1.堆:堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logn),用堆实现的优先级队列虽然和数组实现相比较删除慢了些,但插入的时间快的多了.当速度很重要且有很多插入操作时,可以选择堆 ...
- 内存管理[5]通过 GetProcessHeaps 函数获取了当前进程的堆句柄列表
本例在建立一个新的堆前后分别通过 GetProcessHeaps 函数获取了当前进程的堆句柄列表, 没想到一个最简单的程序也有 5 个堆. 效果图: unit Unit1; interface use ...
随机推荐
- JS数组类型检测
在强类型语言,数组类型检测是非常容易的事情(typeof就可以解决),而在弱语言JS数据类型就很容易混淆了. JS中常见的数据类型有:number.string.boolean.undefined.f ...
- ecshop 点击领取红包
思路: 1.领取红包:也就是传递一个红包ID,和user_id然后update更新过来 2.获取未领取过的红包列表:然后随机函数array_rand($arr,1),随机返回一个数组,从而获得红包列表 ...
- ecshop 后台【左侧新增菜单】
模板文件admin/template/menu.htm admin/includes/inc_menu.php 菜单排序(链接) langagues/zh_cn/admin/common.php 语 ...
- OS X yosemite开启trim后,开机禁止符号,解决办法
最近电脑卡得比较严重,像我这种要求电脑反应快的人为了找一个合适的输入法都宁愿花好几天去研究,所以在网上也找了一些关于如何优化mac的东西,结果悲催了,开启trim后,头都吓得出了一把冷汗. 原因:tr ...
- 平均值mean,众数mode,中值median 和 标准差stddev
平均值mean,众数mode,中值median 和 标准差stddev 均值,众数,中位数,标称差: 均值是就全部数据计算的,它具有优良的数学性质,是实际中应用最广泛的集中趋势测度值.其主要缺点是易受 ...
- 设计模式学习——策略模式(Strategy Pattern)
0. 前言 最近在重构公司的一个项目的时候,在抽取DES加密重复部分代码的时候,突然间想起了策略模式,感觉策略模式好像可以应用上,于是重新学习了下策略模式.注:在DES加密中,有DES和TDES算法, ...
- Linux启动盘制作
1.下载Universal-USB-Installer软件,在电脑上插入空U盘,打开软件,依下列所示步骤进行 2.点击同意 3.点击版本选择框,会出现它支持的系统镜像文件的版本,包括win7.win8 ...
- Ubuntu用作Server时出现乱码的解决方法
下面给出解决办法: 1.用vi编辑器修改/etc/default/local文件 2.把原来的中文编码替换成下面的 LANG="en_US.UTF-8" LANGUAGE=&quo ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- html 表格head头部不动 body部分滚动,每格宽同内容增加
如下图同Excel表格首行固定: <style> .table{ width: 100%; border-collapse:collapse; border-spacing:0;} .ta ...