zoukankan      html  css  js  c++  java
  • done Beaconfire中国小哥中规中矩screening

    https://drive.google.com/drive/folders/1BTKV760sLnrdtP8WhGJQaqpZjoaEZhUd?usp=sharing

    如何避免kafka中的一个消息被消耗两次 -分区

    hashmap内部的结构是什么样的,两个值相同的object当作key size会是多少

    回溯法初始的index = 0,才能算出重复值 eg (1,3) (3,1)

    复杂度:数组元素个数n的(target)次方

     

    /**
    Given an array of distinct integers nums and a target integer target, return the number of possible combinations that add up to target.


    Input: nums = [1,2,3], target = 4
Output: 7
Explanation:
The possible combination ways are:

    (1, 1, 1, 1)
(1, 1, 2)
(1, 2, 1)
(1, 3)
(2, 1, 1)
(2, 2)
(3, 1)
Note that different sequences are counted as different combinations.
    result = [[1, 1, 1, 1], [1, 1, 2], [1, 3], [2, 2]]
    */
    import java.util.*;
    
    public class MyClass {
        public static void main(String args[]) {
          int[] nums = {1,2,3};
          int target = 4;
          
          List<List<Integer>> result = new ArrayList<List<Integer>>();
          //sort
          Arrays.sort(nums);
          
          backtrace(nums, 0, new ArrayList<>(), result, 0, target);
          
          System.out.println("result = " + result);
          System.out.println("result.size() = " + result.size());
        }
        
        public static void backtrace(int[] nums, int start, List<Integer> temp, 
        List<List<Integer>> result, int currSum, int target) {
            //exit case
            if (currSum == target) {
                result.add(new ArrayList<>(temp));
            }else if (currSum > target) {
                return ;
            }else {
                for (int i = 0; i < nums.length; i++) {
                    //handle duplicate
                    // if (temp.contains(nums[i]))
                    //     continue;
                    
                    //backtrace
                    temp.add(nums[i]);
                    backtrace(nums, i, temp, result, currSum + nums[i], target);
                    temp.remove(temp.size() - 1);
                }
            }
        }
    }
    View Code

     

  • 相关阅读:
    【Linux】创建不可修改文件
    【Linux】文件权限
    【shell】创建长目录,目录存在则忽略,缺失则创建
    【Linux】找出文件之间的差异
    Segment fault及LINUX core dump详解 (zz)
    Segment fault及LINUX core dump详解
    communication ports in DOS systems:
    Ubuntu 16.04 LTS (Xenial Xerus)
    C++ 常见崩溃问题分析
    PC-Lint安装配置与集成到VS2010
  • 原文地址:https://www.cnblogs.com/immiao0319/p/15328277.html
Copyright © 2011-2022 走看看