整数去重这道题怎么做
本帖最后由 15533617457 于 2020-5-6 18:51 编辑输出这个数组里的数据如果有相同的值则输出第一次出现的
【输入样例】
10 12 93 12 75
【输出样例】
10 12 93 75 nums = input("请输入一些整数:").split(" ")
for i in range(len(nums)):
nums = int(nums)
nums = list(set(nums))
for i in range(len(nums)):
print(nums, end = " ")
print() KevinHu 发表于 2020-5-6 18:57
你这是 Python…… temp =
res = Int64[]
for each in temp
if !(each in res)
push!(res, each)
end
end
println(res)
Julia{:10_327:}
C语言:
https://zhidao.baidu.com/question/694796476251817964.html qiuyouzhi 发表于 2020-5-6 19:12
Julia
C语言:
https://zhidao.baidu.com/question/694796476251817964.html
只有有序的才能双指针,这个是无序的 永恒的蓝色梦想 发表于 2020-5-6 19:56
只有有序的才能双指针,这个是无序的
哦,好的 qiuyouzhi 发表于 2020-5-6 19:12
Julia
C语言:
https://zhidao.baidu.com/question/694796476251817964.html
如果要先排序的话那输出的格式就会跟输入的格式不一样
#include <stdio.h>
int main()
{
int array[]={1,22,1,44,5,6,5,44};
int length = sizeof(array)/sizeof(int);
for (int k = 0 ; k < length-1; k++)
{
for(int i=k+1; i<length ; i++)
{
if (*(array+k) == *(array+i))
{
for (int j = i+1; j< length ; j++)
{
*(array+j-1)= *(array+j);
}
length--;
}
}
}
for (int i=0; i<length; i++)
{
printf("%d ",array );
}
return 0;
}
结果; 1 22 44 5 6 zltzlt 发表于 2020-5-6 19:03
你这是 Python……
额(⊙o⊙)…{:10_284:} THU_LSM 发表于 2020-5-6 20:08
结果; 1 22 44 5 6
能稍微帮我注释一下吗这个我看不太懂 15533617457 发表于 2020-5-7 09:05
能稍微帮我注释一下吗这个我看不太懂
和你说一下思路吧,就是两个for循环,外层循环k再1~length遍历,内层循环在k~length之间便利,每遇到重复的,就把后面的那一个给剔除掉。相当于两个游标嘛,如果两个游标的地方的元素值相等,就把后面的那个游标处的给删掉。
删除的思路是,比如要删除第i个元素,就把第i+1个元素的值赋给第i个,把第i+2个元素的值赋给第i+1个,把第i+3个元素的值赋给第i+2个。。。。。。一直到末尾。
页:
[1]