当前位置:网站首页>LeetCode 1981. Minimize the difference between the target value and the selected element one question per day
LeetCode 1981. Minimize the difference between the target value and the selected element one question per day
2022-07-07 16:59:00 【@Little safflower】
Problem description
Give you a size of m x n The integer matrix of mat And an integer target .
From matrix's Every line Select an integer from the , Your goal is To minimize the Of all selected elements and And target value target Of Absolute difference .
return The smallest absolute difference .
a and b Two digit Absolute difference yes a - b The absolute value of .
Example 1:
Input :mat = [[1,2,3],[4,5,6],[7,8,9]], target = 13
Output :0
explain : One possible optimal option is :
- On the first line, choose 1
- On the second line, choose 5
- On the third line, choose 7
The sum of the selected elements is 13 , Equal to the target value , So the absolute difference is 0 .
Example 2:Input :mat = [[1],[2],[3]], target = 100
Output :94
explain : The only option is :
- On the first line, choose 1
- On the second line, choose 2
- On the third line, choose 3
The sum of the selected elements is 6 , The absolute difference is 94 .
Example 3:Input :mat = [[1,2,9,8,7]], target = 6
Output :1
explain : The best choice is to choose the first line 7 .
The absolute difference is 1 .
Tips :
m == mat.length
n == mat[i].length
1 <= m, n <= 70
1 <= mat[i][j] <= 70
1 <= target <= 800source : Power button (LeetCode)
link :https://leetcode.cn/problems/minimize-the-difference-between-target-and-chosen-elements
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
Java
class Solution {
public int minimizeTheDifference(int[][] mat, int target) {
int n = mat.length;
// 70 * 70
boolean[][] dp = new boolean[n][5000];
// Deal with the first line
for(int num : mat[0]) dp[0][num] = true;
for(int i = 1;i < n;i++){
// The elements of each line
for(int val : mat[i]){
for(int j = val;j < 5000;j++){
// The previous line is optional j-val value , The current line can be selected j
dp[i][j] = dp[i][j] || dp[i - 1][j - val];
}
}
}
int ans = Integer.MAX_VALUE;
for(int j = 0;j < 5000;j++){
if(dp[n - 1][j]){
ans = Math.min(ans,Math.abs(j - target));
}
}
return ans;
}
}边栏推荐
- 全网“追杀”钟薛高
- 记录Servlet学习时的一次乱码
- 谈谈 SAP 系统的权限管控和事务记录功能的实现
- 值得一看,面试考点与面试技巧
- The latest interview experience of Android manufacturers in 2022, Android view+handler+binder
- Cesium(3):ThirdParty/zip. js
- 整理几个重要的Android知识,高级Android开发面试题
- Have fun | latest progress of "spacecraft program" activities
- Prediction - Grey Prediction
- 3000 words speak through HTTP cache
猜你喜欢
As an Android Developer programmer, Android advanced interview

低代码(lowcode)帮助运输公司增强供应链管理的4种方式

QML beginner

Personal notes of graphics (2)

Personal notes of graphics (3)

Personal notes of graphics (1)

skimage学习(3)——Gamma 和 log对比度调整、直方图均衡、为灰度图像着色

Sort out several important Android knowledge and advanced Android development interview questions

Vs2019 configuration matrix library eigen

Interface oriented programming
随机推荐
掌握这个提升路径,面试资料分享
一文读懂数仓中的pg_stat
LeetCode 1986. 完成任务的最少工作时间段 每日一题
运算符
正在准备面试,分享面经
浅浅理解.net core的路由
数据中台落地实施之法
网关Gateway的介绍与使用
使用JSON.stringify()去实现深拷贝,要小心哦,可能有巨坑
QT中自定义控件的创建到封装到工具栏过程(二):自定义控件封装到工具栏
Ray and OBB intersection detection
深度监听 数组深度监听 watch
Sort out several important Android knowledge and advanced Android development interview questions
【医学分割】attention-unet
typescript ts 基础知识之类型声明
LeetCode 1155. 掷骰子的N种方法 每日一题
DNS 系列(一):为什么更新了 DNS 记录不生效?
Cesium (4): the reason why gltf model is very dark after loading
Seaborn数据可视化
【DesignMode】享元模式(Flyweight Pattern)