选择
构建最小堆时间复杂度
不是链路层的功能
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) 回帖