2020-08-11 贝壳四道题

文章目录

  • 2020-08-11 贝壳四道题
    • 一个字符串,至少改变多少字符串才能成为
    • N$\times $M矩阵
    • 一个数组,求那些子数组中使得求和最大,且长度最短的那个子数组的长度。
    • 一个带权无向图,去掉一些边,使得剩下的边和最大,且图连通

2020-08-11 贝壳四道题

一个字符串,至少改变多少字符串才能成为

  • 回文串

N$\times $M矩阵

  • 每个格子染1色
  • 每种颜色的格子一样多

  • 首先
  • 颜 色 数 ∣ ( N × M ) 颜色数|(N\times M) (N×M)

  • 其实答案就是
  • min ⁡ ( N 的 因 子 , M 的 因 子 ) \min(N的因子,M的因子) min(NM)
  • 当然1除外

一个数组,求那些子数组中使得求和最大,且长度最短的那个子数组的长度。

  • 但是这里不是求和

  • 是"|"

  • 例如

  • 1 2 3

  • 001 010 011

  • 最大的肯定是011(三个和啊)

  • 但最短的肯定是孤零零的第三个数

  • 所以答案是3

  • “|”运算是不减的



#include
#include
using namespace std;

int main()
{
     
	int n;
	cin >> n;
	int* A = new int[n];
	for (int i = 0; i < n; i++)
		cin >> A[i];
	int sum = -1;
	int len = n + 1;
	for (int i = 0; i < n; i++)
	{
     
		int temp = A[i];

		for (int j = i; j < n; j++)
		{
     
			temp = (temp | A[j]);
			if (temp > sum || (temp == sum && (j - i + 1) < len))
			{
     
				len = j - i + 1;
				sum = temp;
			}
			else if (temp == sum)
			{
     
				break;
			}
		}
	}
	cout << len << endl;
}

一个带权无向图,去掉一些边,使得剩下的边和最大,且图连通

  • 这不特么就是啥生成树吗??

你可能感兴趣的:(interview)