选择
构建最小堆时间复杂度
不是链路层的功能
Java单继承
值传递和指针传递
内核锁
删除视图SQL
CPU调度高级、中级、低级
IPV6
稳定排序的含义
索引作用
自增运算符
符号链接
视图作用
不稳定的排序
二叉树排序
((x>4)?99.9:9) 隐式类型转换
出入栈
nlogn 的排序
C类网络地址
虚存只受什么限制
算法1 完全背包问题 就是转换成了物资
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 总预算
int t = input.nextInt();
// 物资总数
int n = input.nextInt();
// 每个物品的价格
int[] prices = new int[n];
// 每个物品的价值
int[] values = new int[n];
for (int i = 0; i < n; i++) {
prices[i] = input.nextInt();
values[i] = input.nextInt();
}
// 预算为 t 时的最大价值
int[] dp = new int[t + 1];
for (int i = 0; i < n; i++) {
for (int j = prices[i]; j < t + 1; j++) {
dp[j] = Math.max(dp[j], dp[j - prices[i]] + values[i]);
}
}
// 输出结果
System.out.println(dp[t]);
}
}算法2 考查全排列
import java.util.*;
public class Solution {
// 保存所有组合的数字
private List<Integer> list = new ArrayList<>();
public static void main(String[] args) {
int x = 4;
System.out.println(" " + ((x>4)?99.9:9));
}
public int reletive_7(int[] digit) {
// write code here
backtrack(digit, 0, digit.length - 1);
int count = 0;
for (int number : list) {
if (number % 7 == 0) {
count++;
}
}
return count;
}
// 回溯法
private void backtrack(int[] digit, int m, int n) {
// 到达末尾
if (m == n) {
// 将数组拼接成数字,添加到结果集
StringBuilder sb = new StringBuilder();
for (int i = 0; i <= n; i++) {
sb.append(digit[i]);
}
list.add(Integer.parseInt(sb.toString()));
} else {
for (int i = m; i <= n; i++) {
// 交换数字位置
swap(digit, m, i);
backtrack(digit, m + 1, n);
// 恢复数字位置
swap(digit, m, i);
}
}
}
// 交换两位置数字
private void swap(int[] digit, int i, int j) {
int temp = digit[i];
digit[i] = digit[j];
digit[j] = temp;
}
}

全部评论
(3) 回帖