挑战数据结构与算法面试题——统计上排数在下排出现的次数

题目来源“数据结构与算法面试题80道”。在此给出我的解法,如你有更好的解法,欢迎留言。

分析:

本题应该是一个确定的问题,即上排的是个数是题目中给定的十个数。

其基本的解题过程为:

  • [10,0,0,0,0,0,0,0,0,0]
  • [9,0,0,0,0,0,0,0,0,1]
  • [8,1,0,0,0,0,0,0,1,0]
  • [7,2,1,0,0,0,0,1,0,0]
  • [6,2,1,0,0,0,1,0,0,0]

其中,循环的终止条件为:数组中的元素不再改变。

本题理解上是给定的数组:[0,1,2,3,4,5,6,7,8,9];如果不是给定的数组,那么解法上会有所不同。

方法:

#define len 10

void get_every_num(int *a, int *b) {
  // 1、初始化
  for (int i = 0; i < len; i++) {
    b[i] = 0;
  }
  // 2、修改值
  int changed = 1;
  while (changed) {
    changed = 0;
    for (int i = 0; i < len; i++) {
      int count = 0;
      for (int j = 0; j < len; j ++) {
        if (a[i] == b[j]) count ++;
      }
      if (b[i] != count) {
        b[i] = count;
        changed ++;
      }
    }
  }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我和PYTHON有个约会

24. 企业级开发基础5:面向对象特征(封装)

在我们程序开发过程中,定义好类型之后就可以通过类型来创建对象 如:我们定义一个中华人民共和国公民的类型

9310
来自专栏mukekeheart的iOS之旅

OC学习2——C语言特性之函数

1、OC是在C语言的基础上进行扩展的,在OC中直接用C语言进行coding也是可以通过编译的。因此,函数定义的语法格式如下: 函数返回值类型 函数名(形参列表...

33570
来自专栏IT笔记

京东2017校园招聘笔试真题(希尔排序)

对关键字{10,20,8,25,35,6,18,30,5,15,28}序列进行希尔排序,取增量d =5时,排序结果为( ) A. {6,18,8,5,15,10...

31850
来自专栏逻辑熊猫带你玩Python

Python | 6大数据类型方法归纳总结(中)

可以直接使用tuple()创建一个新的元组,或者,使用tuple()将一个对象转换成元组。

19240
来自专栏深度学习思考者

一文搞懂C/C++中指针那些事(上篇)

一 指针变量 1.间接存取        指针变量的值为地址;普通变量的值为数据;其中“*”为指针运算符。&是地址操作符,用来引用一个内存地址。通过在变量名...

224100
来自专栏西安-晁州

js数组去重

对于如下对象数组 [{id: 0, name: "name1"}, {id: 1, name: "name2"},{id: 1, name: "name2"},...

30500
来自专栏java学习

面试题2(Java 修饰符问题)

编译并运行下面代码,请选择描述正确的项。 public class XiuShiFu{ int i =10; private static float pi=3...

371150
来自专栏IT可乐

Java关键字(四)——final

  对于Java中的 final 关键字,我们首先可以从字面意思上去理解,百度翻译显示如下:

10130
来自专栏黑泽君的专栏

c语言基础学习07_指针

=============================================================================

29100
来自专栏Python

python ——面向对象进阶

1.staticmethod和classmethod staticmethod  静态方法: 让类里的方法,直接被类调用,就像正常的函数一样 宝宝,男 博博,女...

21370

扫码关注云+社区

领取腾讯云代金券