社区
C#
帖子详情
求一次循环既查找出复行的最优算法! ---------------------- 急
anantnt203120
2005-01-07 09:51:00
请指教:
在一个表格的列中有一int列会有重复,如何只循环一次就将有重复的列标记出。描述即可!
...全文
248
24
打赏
收藏
求一次循环既查找出复行的最优算法! ---------------------- 急
请指教: 在一个表格的列中有一int列会有重复,如何只循环一次就将有重复的列标记出。描述即可!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhiang75
2005-01-27
打赏
举报
回复
如果Int 列得数值是有估算得范围得得话也可以用桶排序找出,这是最快得方法了.
anantnt203120
2005-01-13
打赏
举报
回复
top
hanyaocsdn
2005-01-07
打赏
举报
回复
帮你顶
anantnt203120
2005-01-07
打赏
举报
回复
没有难度,只是求一个最高效的算法!
myhero811104
2005-01-07
打赏
举报
回复
gzyx
zhiang75
2005-01-07
打赏
举报
回复
我想楼主是不是已经按此思路已经实现了,呵呵.
zhiang75
2005-01-07
打赏
举报
回复
看看这个
using System;
using System.Collections;
namespace ConsoleApplication1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
class Data
{
public int key=0;
public object obj=null;
public bool diploid=false;
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
Data[] data=new Data[100];
//要在此对data赋值
Hashtable hashtable = new Hashtable();
for(int a=0;a<data.Length;a++)
{
Data temp=(Data)hashtable[data[a].key];
if(temp==null)
{
hashtable.Add(data[a].key,data[a]);
}
else
{
temp.diploid=true;
data[a].diploid=true;
hashtable.Remove(temp.key);
hashtable.Add(data[a].key,data[a]);
}
}
}
}
}
zhiang75
2005-01-07
打赏
举报
回复
恩,这个问题有难度的啊,呵呵,我想想.
anantnt203120
2005-01-07
打赏
举报
回复
举个例子说明:
行号 数值
1 1
2 2
3 2
4 1
5 3
6 4
那么我就要求标记出
行号 数值 标记
1 1 true
2 2 true
3 2 true
4 3
5 1 true
6 4
zhiang75
2005-01-07
打赏
举报
回复
楼主的意思是说
int[] b={1,1,2,3,4,4,5,5,6,6,9,0,10}
整理完应该是
int[] b={2,3,9,0,10}
吗?
还是
int[] b={1,2,3,4,5,6,9,0,10}
请说明
DeliverGuy
2005-01-07
打赏
举报
回复
跟踪先~
zhiang75
2005-01-07
打赏
举报
回复
我想我的方法在数据量大的情况下会比al.Contains(你的表格[i]))
这个方法快的,因为哈西表是不使用循环做重复检测的,它的取Key时间应该是一个常数,在数据量大的情况下这一点相当重要.
anantnt203120
2005-01-07
打赏
举报
回复
都忽律了一个重要环节:
首先在list里不存在插入list里,继续循环发现有重复,则标记,但是在list中与它重复的记录没有标记,与要求不付。
用hashtable是一个办法,hashtable里保存判断重复的列的值和行号,有重复就将hashtable中的记录和没插入的记录都标记,有人有更好的办法吗?
brightheroes
2005-01-07
打赏
举报
回复
那第一次插入的就无法标记,要求将所有重复的都标记,你漏掉了第一个。
......
uffeng
2005-01-07
打赏
举报
回复
到底是行 还是列?
zhiang75
2005-01-07
打赏
举报
回复
Hashtable hashtable = new Hashtable();
for(int i = 0; i <你的表格.count i ++)
{
try
{
hashtable.Add(你的表格[i],你的表格[i])
}
catch(Exception e)
{
Console.WriteLine(你的表格[i],已经存在);
}
}
hyspeter
2005-01-07
打赏
举报
回复
我重新说一下思路,首先要定义个一个hashtable,然后循环表格,
在hashtable里查找表格里的内容,如果有标记,没有则插入hashtable,
在hahtable内部有个内部循环,他用的是快表查询(起码delphi是这样)比自己的循环快多了
hyspeter
2005-01-07
打赏
举报
回复
老哥,我说循环的表格,第一个格和谁重复呀
hyspeter
2005-01-07
打赏
举报
回复
叫hashtable
anantnt203120
2005-01-07
打赏
举报
回复
回复人: hyspeter(独钓寒江) ( ) 信誉:100 2005-01-07 09:55:00 得分: 0
定义个list,,循环-》首先查找-》如果有则标记,没有则插入。
那第一次插入的就无法标记,要求将所有重复的都标记,你漏掉了第一个。
加载更多回复(4)
用A*
算法
实现迷宫寻路的
最优
解
写在前面 本文是我查阅资料参考了他人的
算法
思路,然后进行记录总结,鄙人水平有限文章中可能会有错误之处,大家做个参考即可,如若有错误希望大家能够坚定自己的想法,别被鄙人带偏。 参考文章:http://www.gamedev.net/reference/articles/article2003.asp 用A*
算法
实现迷宫寻路的
最优
解的
算法
思路 迷宫问题有很多的解法,通常我们使用这两种解法:一种是深度策略(DFS),另一种是广度策略(BFS)。这两种策略各有各的优缺点: BFS:对于解决最短或最少问题特别有
优化的
求
众数方法 - 摩尔投票
算法
(
算法
思想+
求
众数的三种方法+摩尔投票
算法
改进版
求
众数 II)
摩尔投票
算法
是一种在线性时间O(n)和空间复杂度O(1)的情况下,在一个元素序列中
查找
包含最多的元素的典型的流
算法
。 下面用此
算法
来解LeetCode的169.
求
众数、229.
求
众数 II。 一、
求
众数: 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,...
【
算法
精练】二分
查找
算法
总结
说起二分
查找
,也是一种十分常见的
算法
,最常听说的就是:二分
查找
只能在数组有序的场景下使用;其实也未必,只要能找到规律,也依然可以使用;本文我将分享一些有关二分
查找
算法
的做题经验;
最优
组合
算法
最优
组合
算法
算法
实现输出结果 学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java! 需
求
: 1.目标数组 {10,6,5,3,10,2,1,1,6,1,1} 2.要
求
组合不能大于10,且组合最小
算法
实现 /** * @Description:
最优
组合
算法
* @Author zengwei * @Date 2020-11-03-18:32 **/ public class TheBest
最优
二叉
查找
树
最优
二叉搜索树 首先了解什么是二叉
查找
树: 给定n个互异的关键字组成的序列s=<k1,k2,…,kn>,且关键字有序(k1<k2<…<kn),我们想从这些关键字中构造一棵二叉
查找
树。对每个关键字ki,
一次
搜索搜索到的概率为pi。可能有一些搜索的值不在K内,因此还有n+1个“虚拟键”d0,d1,…,dn,他们代表不在K内的值。具体:d0代表所有小于k1的值,dn代表所有大于kn的值。而对于i = 1,2,…,n-1,虚拟键di代表所有位于ki和ki+1之间的值。对于每个虚拟键,一
C#
111,129
社区成员
642,533
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章