背包问题
对于背包问题,我们需要使用动态规划的思想来解决问题。
例如一个问题, 选择n个物品重量w不超过n的最大价值v
首先是集合表示,可以表示为前 i 个物品 不超过 j 的重量的集合
集合的属性:最大/最小值
状态的计算: 对于[i,j] 我们需要对此进行一个集合的划分
一般来说,取最后一部进行划分:
以01 背包为栗:每个物品 选择和不选 , 划分为...
多线程
并发和并行
并发
并行
在同一时刻,有多个指令在多个cpu同时执行
多线程三种实现方式对比
线程常用的方法
优先级
java默认使用的线程调度是抢占式调度,是一种随机的形式,对此我们可以为一个线程设计优先级,默认值是5.
优先级越高,抢占到的cpu越大。
守护线程
当非守护线程运行结束之后,守护线程就会陆续结束。
应用场景: 比如 在聊天窗口...
自定义简易的List,纯数组模拟实现,暴力实现动态扩容缩容,以及筛选功能。
实现方法:
获取元素get(int num) ,
添加add(T o),
根据下标删除removeByIndex(int index),
获取大小size(),
过滤元素filter(MyFilter filter)
public class MyList&...
题目
给你两个二维整数数组 items1 和 items2 ,表示两个物品集合。每个数组 items 有以下特质:
items[i] = [valuei, weighti] 其中 valuei 表示第 i 件物品的 价值 ,weighti 表示第 i 件物品的 重量 。
items 中每件物品的价值都是 唯一的 。
请你返回一个二维数组 ret,其中 ret...
Java的基本数据类型有哪些?
byte,8bit
char,16bit
short,16bit
int,32bit
float,32bit
long,64bit
double,64bit
boolean,只有两个值:true、false,可以使⽤用 1 bit 来存储