第一题是+,-取最近似值,代码如下: public class Test1 { static int min=Integer.MAX_VALUE; public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int t=scanner.nextInt(); for (int i = 0; i < t; i++) { min=Integer.MAX_VALUE; int n=scanner.nextInt(); int m=scanner.nextInt(); int[] nums=new int[n]; for (int j = 0; j < n; j++) { nums[j]=scanner.nextInt(); } dfs(nums,0,nums[0],m); System.out.println(min); } } public static void dfs(int[] nums,int index,int value,int m){ if(index==nums.length-1) { min = Math.min(Math.abs(value - m), min); return; } dfs(nums,index+1,value+nums[index+1],m); dfs(nums,index+1,value-nums[index+1],m); } } dfs深度遍历取最相近值即可
1 16

相关推荐

不愿透露姓名的神秘牛友
01-07 07:54
已编辑
点赞 评论 收藏
分享
牛客网
牛客企业服务