import java.util.Arrays;
/**
* JAVA去掉一个已经排好序的数组的重复数字,尽量快.
*
* @author 老紫竹 JAVA世纪网(java2000.net)
*
*/
public class Test {
public static void main(String args[]) {
int[] arr = { 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7, 8, 9, 9, 10, 11, 11,
11, 12, 12, 13, 14, 14, 15 }; // 预设数据数组
int index = 1; // 保存最后一个不重复的位置
int last = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] != last) {
arr[index] = arr[i];
last = arr[index];
index++;
}
}
int[] rtn = new int[index];
System.arraycopy(arr, 0, rtn, 0, index);
System.out.println(Arrays.toString(rtn));
}
}
分享到:
相关推荐
当面对一个已排序的数组,有时我们需要去除其中的重复元素,以优化数据结构或满足特定的算法需求。本篇将深入探讨如何在Java中有效地去除已排序数组的重复元素。 首先,我们需要了解问题的核心要求。给定一个已排序...
插入排序则将数组分为已排序和未排序两部分,每次将一个未排序的元素插入到已排序部分的合适位置,直至所有元素都排好序。 在编程实践中,理解并熟练运用数组和字符串的特性以及相关的算法,能够有效地提高代码的...
集合不允许重复元素存在,通常用于去除重复项或进行数学运算如交集、并集等。 - **实现类**:`HashSet` (基于哈希表)、`TreeSet` (基于红黑树)。 ### 二、常用算法 #### 1. 排序算法 排序是数据处理中最常见的需求...
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=...
首先构造一个大顶堆,然后将堆顶元素与最后一个元素交换,去掉最后一个元素,再对剩余的元素重新调整为堆,如此反复执行,直到所有元素都有序。 这些排序算法在实际应用中各有优缺点,如选择排序和冒泡排序简单但...
索引过程将文档内容转化为可搜索的形式,如倒排索引,其中每个词对应一个文档列表。 2. **Analyzer**:分析器负责处理输入的文本,进行分词、去除停用词等预处理工作,以适应搜索需求。 3. **Document**:代表要被...
Lucene是Apache软件基金会的一个开放源代码项目,它是一个高性能、全文本检索库,提供了Java实现的全文索引和搜索功能。Lucene不仅能够对文本进行索引,还可以对文档进行存储,使得搜索结果可以返回原始文档。它的...
- 该算法的基本思想是从数组最后一个元素开始,随机选择一个位置交换至当前位置,依次向前移动直至第一个元素。 4. **25匹马,5个跑道,最少比多少次能比出前3名?前5名?** - 首先进行五组比赛找出每组冠军,再...
然后,创建一个IndexWriter实例,设置好Analyzer,就可以开始添加文档了。每添加一个文档,Lucene都会更新索引。 2. **查询(Querying)**:使用QueryParser创建查询对象,指定Analyzer和查询字符串。然后,使用索引...
Lucene 是一个开源全文搜索引擎库,由Apache软件基金会开发。它是Java编写的,但提供了与其他编程语言的接口。这个入门资料包将帮助你了解并掌握Lucene的核心概念和使用方法。 ### 一、Lucene基础知识 1. **全文...
双联通分量指的是无向图中,即使去掉任何一个顶点,仍然保持连通的子图。可以使用 DFS 来找到图的所有双联通分量。 ##### 拓扑排序 拓扑排序是对于有向无环图(DAG),将其节点排列成一个序列,使得对于每条从节点 ...
总之,Lucene提供了一个完整的文本检索框架,从数据的分析、索引建立到查询执行,每个环节都有精心设计的组件支持。通过深入理解这些核心概念和组件,开发者可以构建出高性能、定制化的搜索引擎应用。
- **基本思想**:选择一个基准元素,将数组分为小于基准和大于基准的两部分,递归排序这两部分。 #### 35. TCP三次握手与SACK - **三次握手**:建立TCP连接的过程。 - **SACK**:Selective Acknowledgment,用于更...
2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat 3. 运行该批处理程序将自动完成oracle卸载工作,最后手动删除\app文件夹(可能需要重启才能删除) 4. 运行...