15533617457 发表于 2020-5-6 18:48:54

整数去重这道题怎么做

本帖最后由 15533617457 于 2020-5-6 18:51 编辑

输出这个数组里的数据如果有相同的值则输出第一次出现的
【输入样例】
10 12 93 12 75
【输出样例】
10 12 93 75

KevinHu 发表于 2020-5-6 18:57:42

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()

zltzlt 发表于 2020-5-6 19:03:05

KevinHu 发表于 2020-5-6 18:57


你这是 Python……

qiuyouzhi 发表于 2020-5-6 19:12:24

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

永恒的蓝色梦想 发表于 2020-5-6 19:56:16

qiuyouzhi 发表于 2020-5-6 19:12
Julia
C语言:
https://zhidao.baidu.com/question/694796476251817964.html

只有有序的才能双指针,这个是无序的

qiuyouzhi 发表于 2020-5-6 20:07:18

永恒的蓝色梦想 发表于 2020-5-6 19:56
只有有序的才能双指针,这个是无序的

哦,好的

15533617457 发表于 2020-5-6 20:07:43

qiuyouzhi 发表于 2020-5-6 19:12
Julia
C语言:
https://zhidao.baidu.com/question/694796476251817964.html

如果要先排序的话那输出的格式就会跟输入的格式不一样

THU_LSM 发表于 2020-5-6 20:08:28


#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

KevinHu 发表于 2020-5-6 20:21:01

zltzlt 发表于 2020-5-6 19:03
你这是 Python……

额(⊙o⊙)…{:10_284:}

15533617457 发表于 2020-5-7 09:05:02

THU_LSM 发表于 2020-5-6 20:08
结果; 1 22 44 5 6

能稍微帮我注释一下吗这个我看不太懂

THU_LSM 发表于 2020-5-7 11:45:46

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]
查看完整版本: 整数去重这道题怎么做