leetcode2397. 被列覆盖的最多行数 回溯法/枝剪

第一次手搓一个回溯法,超时后采用枝剪勉强通过
class Solution {
int max=0;
int numSelect;
public int maximumRows(int[][] matrix, int numSelect) {
Set<String>stateSet=new HashSet<>();
dfs(matrix,new boolean[matrix[0].length],0,numSelect,stateSet);
return max;
}
public void dfs(int[][]matrix,boolean[]selected,int step,int numSelect,Set<String>stateSet){
String currentState = Arrays.toString(selected);
if (stateSet.contains(currentState))
return;
else
stateSet.add(currentState);
if(step==numSelect){
int cnt=0;
for(int i=0;i<matrix.length;i++){
boolean flag=true;
for(int j=0;j<matrix[0].length;j++){
if(matrix[i][j]!=0&&!selected[j]){
flag=false;
break;
}
}
if(flag)
cnt++;
}
max=Math.max(max,cnt);
return;
}
for(int i=0;i<selected.length;i++){
if(!selected[i]){
selected[i]=true;
dfs(matrix,selected,step+1,numSelect,stateSet);
selected[i]=false;
}
}
}
}
leetcode2397. 被列覆盖的最多行数 回溯法/枝剪的更多相关文章
- 第七届蓝桥杯试题c/c++A组方格填数 回溯法
方格填数如下的10个格子 +--+--+--+ | | | |+--+--+--+--+| | | | |+--+--+--+--+| | | |+--+--+--+(如果 ...
- excel运行最多行数
2003及以前版本为65536(即6万多)行,256列2007版:1048576(即1百零多万)行,16384(即1千多)列
- Oracle 行转列(不固定行数的行转列,动态)(转)
http://bbs.csdn.net/topics/330039676 SQLSERVER :行列转换例子: http://www.cnblogs.com/gaizai/p/3753296.htm ...
- Java获得数据库查询结果的列数和行数,打印查询结果
Java连接数据库及简单操作见我以前的一篇随笔:http://www.cnblogs.com/meitian/p/5036332.html 一.获取查询结果的行数和列数 查询结果为ResultSe ...
- 【所见即所得】textarea 精确限制字数、行数,中、英、全半角混检 。源码带注释
主要解决难点: 1 中文 全角2字符深深的恶意 2 多行输入textarea 手动,自动换行问题 3 获得每行内容 原创,转载请注明出处! <!DOCTYPE html PUBLIC " ...
- jquery获取table的行数、列数
$("#grd").find("tr").length; //行数 $("#grd").find("tr").find( ...
- 如何获取ResultSet的行数和列数
当我们执行数据库查询返回一个ResultSet的时候,很多情况下我们需要知道这个ResultSet的大小,即它的行数和列数.我们知道它的列数可以通过resultSet.getMetaData().ge ...
- StringGrid 实例2:1、获取 StringGrid 的行数、列数; 2、给单元赋值.
实例2: 本例功能: 1.获取 StringGrid 的行数.列数; 2.给单元赋值. 运行效果图:
- POI中getLastRowNum() 和getLastCellNum()的区别 hssfSheet.getLastRowNum();//最后一行行标,比行数小1 hssfSheet.getRow(k).getLastCellNum();//获取列数,比最后一列列标大1
hssfSheet.getLastRowNum();//最后一行行标,比行数小1 hssfSheet.getRow(k).getLastCellNum();//获取列数,比最后一列列标大1
- MFC LIST 获取行数和列数
DWORD dwStyle = dataListControl.GetExtendedStyle(); dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与 ...
随机推荐
- 通过 InnoSetup 美化安装界面
InnoSetup 的美化相应的帖子也比较多,但是代码不是很全...所以我专门出了这篇文章来记录下这个美化过程.废话不多说,先上个成果: 前端er们可以直接下载 vue-nw-seed 这个分支,一键 ...
- Flutter学习网站和安装问题
一.Flutter网站 Flutter中文开发者网站(推荐) https://flutter.cn/ 二.Flutter第三方库 Pub.Dev https://pub.dev/ 三.Flutter源 ...
- 一个问题:六位八段数码管(Verilog)
[基本信息] 需求:verilog程序,显示任意六位字符或数值,包含点号,且能够按需点亮位数.(学习篇) 芯片型号:cyclone Ⅳ EP4CE10F17C8 数码管属性:六位.八段 [最终成果图] ...
- python安装OCR识别库
(1)安装过程 参考的这个博客:https://blog.csdn.net/lanxianghua/article/details/100516187?depth_1-utm_source=distr ...
- Java 集合的概念
目录 集合 单列集合(Collection) Collection中的一些方法 public static < T > boolean addAll(Collection<? sup ...
- NumPy 简单算术:加减乘除及其他运算
简单算术 你可以直接在 NumPy 数组之间使用算术运算符 + - * /,但本节讨论了一个扩展,其中我们有函数可以接受任何类似数组的对象,如列表.元组等,并根据条件执行算术运算. 条件算术:意味着我 ...
- java怎样把两个list里边相同的数据取出
1 import java.util.ArrayList; 2 import java.util.List; 3 4 public class I { 5 6 public static void m ...
- java.util.Date和java.sql.Date有什么区别?
java.util.Date包含日期和时间,而java.sql.Date只包含日期信息,而没有具体的时间信息.如果你想把时间信息存储在数据库 里,可以考虑使用Timestamp或者Date ...
- Ubuntu禁止和启动内核更新
ubuntu禁止和启动内核更新 https://www.cnblogs.com/passedbylove/p/13091002.html https://www.cnblogs.com/sparkde ...
- 高通Android Cam-x Actuator Bring up
高通Android Camera Bring Up Actuator reference:https://blog.csdn.net/mr_zjc/article/details/105736925 ...