image.png
    image.png

    image.png

    image.png
    image.png

    image.png

    image.png

    image.png

    image.png

    1. public class CardDp {
    2. public static void main(String[] args) {
    3. int weigth[] = {1,2,3,4,5,9}; //购物车那个问题 只需要一个价值就行了,重量都都没有。
    4. int w = 8;
    5. int n = 6;
    6. int dp[][] = new int[n+1][w+1]; //n表示是物品,w表示重量,初始化全是0
    7. for(int i = 1; i<= n; i++){ //每次加的物品
    8. for(int cw = 1 ; cw <= w ; cw ++){ //分割的背包
    9. if(weigth[i - 1] <= cw){ //表示这个物品可以装进去
    10. dp[i][cw] = Math.max(
    11. weigth[i-1] + dp[i-1][cw-weigth[i-1]],
    12. dp[i-1][cw]
    13. );
    14. }else{
    15. dp[i][cw] = dp[i-1][cw]; //不能装
    16. }
    17. }
    18. }
    19. System.out.println(dp[n][w]);
    20. }
    21. }
    1. public class Dp {
    2. public static void main(String[] args) {
    3. int value [] ={60,100,120};
    4. int weigth[] = {10,20,40}; //购物车那个问题 只需要一个价值就行了,重量都都没有。
    5. int w = 50;
    6. int n = 3;
    7. int dp[][] = new int[n+1][w+1]; //n表示是物品,w表示重量,初始化全是0
    8. for(int i = 1; i<= n; i++){ //每次加的物品
    9. for(int cw = 1 ; cw <= w ; cw ++){ //分割的背包
    10. if(weigth[i - 1] <= cw){ //表示这个物品可以装进去
    11. dp[i][cw] = Math.max(
    12. value[i-1] + dp[i-1][cw-weigth[i-1]],
    13. dp[i-1][cw]
    14. );
    15. }else{
    16. dp[i][cw] = dp[i-1][cw]; //不能装
    17. }
    18. }
    19. }
    20. System.out.println(dp[n][w]);
    21. }
    22. }
    1. class Metting implements Comparable<Metting> {
    2. int meNum; // 编号
    3. int startTime; // 开始时间
    4. int endTime; // 结束时间
    5. public Metting(int meNum, int startTime, int endTime) {
    6. super();
    7. this.meNum = meNum;
    8. this.startTime = startTime;
    9. this.endTime = endTime;
    10. }
    11. public int compareTo(Metting o) {
    12. if (this.endTime > o.endTime)
    13. return 1;
    14. return -1;
    15. }
    16. @Override
    17. public String toString() {
    18. return "Metting [meNum=" + meNum + ", startTime=" + startTime
    19. + ", endTime=" + endTime + "]";
    20. }
    21. }
    22. public class MettingTest {
    23. public static void main(String[] args) {
    24. Scanner cin = new Scanner(System.in);
    25. List<Metting> mettings = new ArrayList<Metting>();
    26. int n = cin.nextInt(); //n个会议
    27. for (int i = 0 ;i < n; i++){
    28. int start = cin.nextInt();
    29. int end = cin.nextInt();
    30. Metting metting = new Metting(i+1, start, end);
    31. mettings.add(metting);
    32. }
    33. mettings.sort(null);
    34. int curTime = 0; //当前的时间,从一天的0点开始,如果领导要求从8点开始 那curTime=8
    35. for(int i = 0 ; i < n; i ++){
    36. Metting metting = mettings.get(i);
    37. if(metting.startTime >= curTime){ //会议的开始时间比我们当前的要大 表示可以开
    38. System.out.println(metting.toString());
    39. curTime = metting.endTime;
    40. }
    41. }
    42. }
    43. }
    1. public class QuiklySort {
    2. public static void main(String[] args) throws Exception {
    3. //int data[] = { 4, 5, 6, 3, 2, 1 };
    4. String str = null;
    5. String fileName = "E:\\workspace\\sort\\200w.txt";
    6. InputStreamReader isr = new InputStreamReader(new FileInputStream(fileName), "UTF-8");
    7. BufferedReader br = new BufferedReader(isr);
    8. double data[] = new double[2100002];
    9. int i = 0;
    10. while ((str = br.readLine()) != null) {
    11. data[i++] = Double.valueOf(str);
    12. }
    13. System.out.println("数据读取完毕,size为" + i);
    14. long start = System.currentTimeMillis();
    15. qSort(data, 0, data.length - 1);
    16. /*File file =new File("E:\\workspace\\sort\\200w-qsort.txt");
    17. Writer out =new FileWriter(file);
    18. for(i = 0 ; i< data.length ; i++) {
    19. out.write(String.valueOf(data[i]) + "\r\n");
    20. }
    21. out.close();*/
    22. System.out.println("快排消耗的时间为:" + (System.currentTimeMillis() - start) + "ms");
    23. //System.out.println(Arrays.toString(data));
    24. }
    25. public static void qSort(double data[], int left, int right) {
    26. double base = data[left];
    27. int ll = left;
    28. int rr = right;
    29. while (ll < rr) {
    30. while (ll < rr && data[rr] >= base) {
    31. rr--;
    32. }
    33. if (ll < rr) {
    34. double temp = data[rr];
    35. data[rr] = data[ll];
    36. data[ll] = temp;
    37. ll++;
    38. }
    39. while (ll < rr && data[ll] <= base) {
    40. ll++;
    41. }
    42. if (ll < rr) {
    43. double temp = data[rr];
    44. data[rr] = data[ll];
    45. data[ll] = temp;
    46. rr--;
    47. }
    48. }
    49. if (left < ll - 1)
    50. qSort(data, left, ll - 1);
    51. if (ll + 1 < right)
    52. qSort(data, ll + 1, right);
    53. }
    54. }