用O(nlog(n)实现最长递增子序列问题

用O(nlog(n)实现最长递增子序列问题

问题描述

输入一串数字,或数组,如-5, 1, -3, -1, -2, 1, 4, 8, 9, 7,则该数组的最长递增子序列之一(注意,最长递增子序列有时候不止一个)为-5,-3,-1,1,4,8,9

思路一: 可以参考之前的博文

思路二: 具体思路参考,但他的代码有点问题,自己改了下

int dp_nlogn(int *data, int *auxData, int len)
{
	int seqLen = 1;
	int i, mid = 0, left = 1, right = 0;
	auxData[1] = data[1];
	for(i=2; i<=len; i++)
	{
		left = 1; 
		right = seqLen;
		while(left<=right)		//find a pos to insert
		{
			mid = (left + right)/2;
			if(auxData[mid]<data[i])
				left = mid + 1;
			else
				right = mid - 1;
		}
		if(left >= seqLen)  //curLen is logger than before
			auxData[left] = data[i]; //insert
		if(left>seqLen)	 
		{
			seqLen++;
		}
	}
	return seqLen;
}

Read more

印度统治阶级锁死底层人的5大阳谋

印度统治阶级锁死底层人的5大阳谋

基于社会学和心理学视角: 1. 情感道德: 统治阶级通过塑造道德规范和情感价值观,引导底层人群的行为。例如,宣扬“勤劳致富”“忍耐美德”等观念,让底层人接受现状并自我约束。这种道德框架往往掩盖结构性不平等,使人们将个人困境归咎于自身而非系统。 2. 欲望控制: 通过消费主义和媒体宣传,统治阶级刺激底层人的物质与社会欲望(如名牌、地位),但同时设置经济壁垒,使这些欲望难以实现。底层人被困在追求“更好生活”的循环中,精力被分散,无法聚焦于挑战权力结构。 3. 情绪煽动: 利用恐惧、愤怒或民族主义等情绪,统治阶级可以通过媒体或公共事件转移底层人对社会问题的注意力。例如,制造外部敌人或内部对立(如阶层、种族矛盾),让底层人内耗而非联合反抗。 4. 暴利诱惑: 通过展示少数“成功案例”或快速致富的机会(如赌博、投机),诱导底层人追逐短期暴利。这种机制不仅让底层人陷入经济风险,还强化了对现有经济体系的依赖,削弱长期变革的可能性。 5. 权力震撼: 通过展示统治阶级的权力(

By Ne0inhk