贪心算法-找出一个-1,0,1三值矩阵中的最大全1子块

问题描述

找出一个-1,0,1三值矩阵中的最大全1子块

并不要求子块仍为一个矩阵,但要求形状为凸多边形,可进行行列变换,只要求所求子块最大。
我的理解是:用贪心法找出一个连续的最全1块,再进行行列变换保证子块形状为凸。
数据量较大,文件形式给出。

时间: 2024-08-07 03:18:39

贪心算法-找出一个-1,0,1三值矩阵中的最大全1子块的相关文章

【算法题】求一个-1,0,1三值矩阵中的最大全1子块

问题描述 并不要求子块仍为一个矩阵,但要求形状为凸多边形,可进行行列变换,只要求所求子块最大.我的理解是:用贪心法找出一个连续的最全1块,再进行行列变换保证子块形状为凸.数据量较大,文件形式给出.求助啊,现在连个方向都没有... 解决方案 解决方案二:同不会,帮顶..

求解答-试编写一个算法,找出一个循环链表中的最小值。我是新手,编了一个程序,不知错在哪

问题描述 试编写一个算法,找出一个循环链表中的最小值.我是新手,编了一个程序,不知错在哪 #includeusing namespace std; class LinkNode{ int data; LinkNode *link; LinkNode(int d=0LinkNode *l=0){data=d;link=l;}}; class List{private: LinkNode *first; int n;public: List() { first=new LinkNode; first

C++通过自定义函数找出一个整数数组中第二大数的方法

  本文实例讲述了C++通过自定义函数找出一个整数数组中第二大数的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 const int MINNUMBER = -32767 ; //2字节的Int 0x8000-1, //4字节的Int 0x80000000-1 -2147483647 int find_sec_max( int data[] , int count) { int

编程-给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数。

问题描述 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数. (在文件中至少缺失一个这样的数为什么?)括号里的话怎么得到的 在具有足够内存的情况下,如何解决该问题? 如果有几个外部的临时文件可以用,但是只有几百字节的内存,又该如何解决该问题. 解决方案 足够内存,用位图法.定义一个arr[4294967296]大小的数组,遍历顺序文件,遇到一个值,就把对应下标的置1,最后遍历这个数组,找0的元素. 解决方案二: 如果只有几百的内存,可以用hashtable.

dp-动态规划(DP)算法求出一个问题的所有解

问题描述 动态规划(DP)算法求出一个问题的所有解 具体问题是: 假设有一个楼梯共有N步,你每次可以爬1步或2步.请编写一个函数来计算,有多少种不同的方法可以爬到顶. 此题给出的解如下: int climbStaris(int n){ if(n <= 1) return 1; if(n == 2) return 2; int p = 1, q = 2, curr; for( int i = 3; i <= n; ++i){ curr = p + q; p = q; q = curr; } re

linux-Linux中怎么用grep找出一个文件中空白行的行数字=

问题描述 Linux中怎么用grep找出一个文件中空白行的行数字= 不知道为什么这样写# grep '^&' /etc/profile | wc -l找不出结果, 请问这个应该怎么写才是真确的? 解决方案 grep -E '^$' -n /etc/profile 解决方案二: 加上正则的参数,试试下面的命令 grep -e '^$' -n /etc/profile

怎样找出包含在HttpSession,Request,ThreadLocal中的对象

问题描述 领导指定了一个任务,就是找出包含在HttpSession,Request,ThreadLocal中的对象,不知道该如何下手.使用的是Websphere! 解决方案 解决方案二:查下apiHttpSession有个getAttributeNames()依次类推吧如果这不能满足老板的要求就用反射吧解决方案三:我尝试过用这种方法,但是HttpSession,Request,ThreadLocal怎么区别呢?解决方案四:Useru=newUser();Systen.out.prtinln(ui

数组 算法-找出两数组中不同的数据,并查看他们在以前数组中的索引值

问题描述 找出两数组中不同的数据,并查看他们在以前数组中的索引值 var aa = [1,21,21,21,28]; var bb = [3,4,27,39,21]; var cc = []; var tmp = aa.concat(bb); var o = {}; for (var i = 0; i < tmp.length; i ++){ (tmp[i] in o) ? o[tmp[i]] ++ : o[tmp[i]] = 1; } for (x in o){ if (o[x] == 1){

【转】感知哈希算法——找出相似的图片

Google 图片搜索功能         在谷歌图片搜索中, 用户可以上传一张图片, 谷歌显示因特网中与此图片相同或者相似的图片.         比如我上传一张照片试试效果: 原理讲解         参考Neal Krawetz博士的这篇文章, 实现这种功能的关键技术叫做"感知哈希算法"(Perceptual Hash Algorithm), 意思是为图片生成一个指纹(字符串格式), 两张图片的指纹越相似, 说明两张图片就越相似. 但关键是如何根据图片计算出"指纹&qu