`

毁三观算法1 数组中的连续且相同起始结束 2 数组参考中连续且相同

 
阅读更多
/**
 * 找出横向是连续(2个以上)纵向是相同的起始和结束位置
 * 起始和结束位置有N个
 * 这是一个颠覆三观的算法。首尾填充最后中间填充
 * 注意第一个和最后一个是加的前缀和后缀    
 * 由于是有顺序的,每2个是一对啊 
 * @author 
 *
 */
public class Points {
	public static void main(String[] args) {
		String specialStart = "@@@@start@@@@";
		String specialEnd = "@@@@end@@@@";
		String specialMiddle = "@@@@middle@@@@";
		String[] a = { specialStart, "ab", "a", "ba", "b", "a", "a", "a", "a", "a", "b", "b", "b", "b", "c", "c", "c", "c", "a","bc", "bc", "b",  specialEnd};
		String[] b = { specialStart, "c", "bc", "a", "aa", "a", "a", "c", "a", "a", "b", "b", "b", "c", "c", "e", "c", "c", "c","bc", "bc", "cbc",specialEnd};
		// 求单个数组的
		print(a);
		System.out.println("===============================a end");
		print(b);
		System.out.println("===============================b end");
		// 求b中连续的(2个以上) 且与a位置的值相同的起始结束位置
		String[] c = new String[a.length];
		for (int i = 0; i < c.length; i++) {
			c[i]=a[i]+specialMiddle+b[i];
		}
		print(c);
		System.out.println("===============================a,b互相参考end");
	}
	public static void print(String[] data) {
		for (int i = 0; i < data.length; i++) {
			if (i > 0 && i < data.length - 1) {
				boolean pre = data[i].equals(data[i - 1]);
				boolean next = data[i].equals(data[i + 1]);
				if (!pre && next) {
					System.out.println("开始位置" + i);// 
				}
				if (pre && !next) {
					System.out.println("结束位置" + i);
				}
			}
		}
	}
}

 

分享到:
评论

相关推荐

    c语言实现分治算法求解最大子数组

    自己写的分治算法,也包括了暴力求解的部分,并比较两者的运行时间,输出最大子数组的起始位置

    找到拥有最大波谷的子数组位置

    假设X:[1:n] 是实数数组, L 是一个固定的正整数L ≤ n。X的L 子数组是数组X 的L 连续元素的任意序列。...X[1:n] 和一个正整数L ≤n ,并返回具有最大波谷的子数组L 的起始位置,并根据n 和L 分析算法的时间复杂度。

    c语言数据结构算法演示(Windows版)

    算法演示屏的状态和 1 中所述相同。 3. 汉诺塔问题 算法演示屏由4个窗口组成。右侧上方为算法文本,在算法中有4个形式参量,其中值参 n 为圆盘个数,x、y、和 z 分别表示3个塔座;右侧下方为递归工作栈,栈中每个...

    汇编语言 20个练习题目 代码加实验报告

    5.15 数据段中已定义了一个有N个字数据的数组M,试编写一程序求出M中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中。 5.16 在首地址为DATA的字数组中,存放了100H个16位...

    javascript入门笔记

    特点:将 a 和 b 先转换为二进制,按位操作,对应位置上的两个数字,相同时,该位整体结果为0,不同时,该位的整体结果为 1 使用场合:快速交换两个数字 5 ^ 3 101 011 ========== 110 结果为 6 练习: ...

    java源码包2

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    (1) 根据下述情况,分别编写程序,记录 BX 中 1 的个数(需要考虑 BX 中二进制 串的特殊情况),要求如下:  循环次数已知  循环次数未知 (2)

    1) 起始地址为 string 的主存单元中存放一个字符串(长度大于 6),把 该字符串中的第 1 个和第 6 个字符(字节量)传送给 DX 寄存器; 2) 从主存 buffer 开始的 4 字节中保存了 4 个非压缩 BCD 码,现按低(高) ...

    好用的C语言滤波算法

    C语言滤波算法 ADC采集滤波算法,直接移植,很好用 使用插入排序的方法,将一个无序的数组按照从小到大进行排序 1、将数组进行平均滤波,参与平均滤波的数组起始位置可以通过参数选 * 择,即不一定对数组中的所有...

    蓝桥杯问题解决方法与思路是什么具体举例.docx

    例如,在 [100, 4, 200, 1, 3, 2] 中,最长连续序列是 [1, 2, 3, 4] ,其长度为 4 。 解决思路与方法: 审题与理解: 题目要求找出数组中最长的连续递增子序列的长度,这是一个经典的滑动窗口问题变种,也可以看作...

    C语言数据结构 广工 作业系统 05.数组与广义表

    5.18⑤ 试设计一个算法,将数组A中的元素 A[0..n-1]循环右移k位,并要求只用一个元素 大小的附加存储,元素移动或交换次数为O(n)。 5.21④ 假设稀疏矩阵A和B均以三元组表作为存储结构。 试写出矩阵相加的算法,另设...

    用python实现的最短路径算法之迪杰斯特拉(Dijkstra)算法

    数组U中是除起点D之外的顶点,并且数组U中记录各顶点到起点D的距离。如果顶点与起点D不相邻,距离为无穷大。 然后,从数组U中找出路径最短的顶点K,并将其加入到数组S中;同时,从数组U中移除顶点K。接着,更新数组U...

    C++语言实现使用Prim(普利姆)算法求最小生成树

    Prim算法是一种求解最小生成树问题的贪心算法。其基本原理是:每次从未被选择的顶点中选择一个距离当前生成树...结束循环:当所有的顶点都被加入生成树中时,算法结束。 输出结果:输出生成树中的所有边和对应的权值。

    一个VC 随机数组生成类.rar

    VC 随机数组生成类的源代码,代码由重庆大学光电学院311实验室 袁刚编写,将随机生成的数组序列保存在TXT中,srand((unsigned)time(NULL));// 生成时间种子  m=rand()%m_Txt_Line;// 返回一个0-m_Txt_Line-1的...

    max_slice_n_squared:查找数组的最大和切片。 n的大O的简单算法可对先前的n立方算法进行改进

    [1,2,3] =&gt; [1,2,3] [1,-2,3] =&gt; [3] [1,-2,3,4] =&gt; [3,4] [-1, -2,-3] =&gt; [-1] 穿行 该算法使用强力两次迭代,以便访问输入数组的每个起始元素和每个可能的切片终点,并计算每个可能切片的最大和。 该算法...

    简单的C++排序算法

    它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据...

    java算法大全源码包.zip

    每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5...

    基于A*算法的人工智能程序

    注一: Op1 = Op2表示将Op2的内容全部复制到Op1中, 注二: 标志为解状态的原因是为了找到解图; 标志为某状态为解状态的同时也标记此状态为已扩展 注三:取得空白位的位置在Op2初使化时就已完成。 注四:由于G值...

    A星算法代码JAVA

    编程语言:Java 编程软件:Eclipse 操作系统:Windows 8.1 在一个20*20的二维数组中,任意设置起始点和终止点,并设置障碍点,利用A*算法实现从起始点到终止点的最优路径搜索,并绕过障碍点。

    详解C++编程中用数组名作函数参数的方法

    如果有一个整型数组a,假设数组的起始地址为2000,则该数组在内存中的存储情况如图所示。 引入数组就不需要在程序中定义大量的变量,大大减少程序中变量的数量,使程序精炼,而且数组含义清楚,使用方便,明确地...

    java实现Dijkstra算法

    在示例代码中,我们使用数组distance来记录起始顶点到其他顶点的最短距离。 首先,我们初始化所有顶点的距离为无穷大(用Integer.MAX_VALUE表示),将起始顶点的距离设为0。然后,从未访问的顶点中选择当前最短距离...

Global site tag (gtag.js) - Google Analytics