为什么80%的码农都做不了架构师?>>>   

题目:

根据上排给出十个数,在其下排填出对应的十个数,要求下排每个数都是先前上排那十个数在下排出现的次数。

上排的十个数如下: 【0,1,2,3,4,5,6,7,8,9】

举一个例子

数值: 0,1,2,3,4,5,6,7,8,9

分配: 6,2,1,0,0,0,1,0,0,0

分析:

象例子所示。上排0在下排出现6次,1出现两次,2与6个出现一次,其他都为0次。

说实话,粗一看到这样的题目,实在不知什么下手。但是一旦知道了答案,就简单至极。 原本我还想过用二元方法去解答,因为下排相加正好是也是10,或许上下排之间有一个不可告人之二元表达式……囧……如果这样想,你就错了。

可行的一种方法是,从左到右(或者从右到左),依次统计上排数在下排出现的次数,如果统计得出的次数与下排的数正好相等就不做处理;如果不相等,就将统计得到的次数赋予下排,并要求在此轮结束后再重新统计一次。直到每个统计数与对应的下排数相等,程序结束。 上图:

代码实现

使用java、javascript、c三种语法实现,虽然代码都差不多,但是不失为一个锻炼码功的机会,尤其本人司职Java程序员…… java版本:

package net.lianmi.arts;import java.util.Arrays;/*** Created by Mark on 2014/9/1 0001.*/
public class CountMap {public int[] core(int[] srcList){int[] rltList = new int[srcList.length];boolean isNotOk = true;while(isNotOk){isNotOk = false;int temp;for (int i = 0; i < srcList.length; i++) {temp = 0;for (int j = 0; j < rltList.length; j++) {if(srcList[i] == rltList[j]){temp++;}}if (temp != rltList[i]){isNotOk = true;rltList[i] = temp;}}}return rltList;}public static void main(String[] args) {CountMap cm = new CountMap();int[] ts =  {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int[] rlt = cm.core(ts);System.out.println(Arrays.toString(ts));System.out.println(Arrays.toString(rlt));}
}

JavaScript版本:

var core = function(srcList){var isNotOk = true;var reslutList = new Array(srcList.length);while(isNotOk){isNotOk = false;for (var i = srcList.length - 1; i >= 0; i--) {var temp = 0;for (var j = reslutList.length - 1; j >= 0; j--) {if(reslutList[j] == srcList[i]){temp++;}};if(reslutList[i] != temp){isNotOk = true;reslutList[i] = temp;}};};return reslutList;
}var srcList = [0,1,2,3,4];
console.log(srcList);
console.log(core(srcList));

C语言版本:

#include void core(int srcList[], int rltList[], int n){int isNotOk = 1,i,j;while(isNotOk){isNotOk = 0;for (i = 0; i < n; i++) {int temp = 0;for (j = 0; j < n; j++) {if(srcList[i] == rltList[j])temp++;};if(rltList[i] != temp){isNotOk = 1;rltList[i] = temp;}};}
}int main(){int srcList[] = {0,1,2,3,4,5,6,7,8,9};int rltList[10] = {0}; int n = 10,i;core(srcList,rltList,n);for (i = 0; i < n; i++) {printf("%d ", srcList[i]);};printf("\n");for (i = 0; i < n; i++) {printf("%d ", rltList[i]);};return 0;
}

转载于:https://my.oschina.net/markho/blog/498267

次数统计-CountMap相关推荐

  1. 1113: 递归调用的次数统计(函数专题)

    1113: 递归调用的次数统计(函数专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 2795 解决: 2006 [提交] [状态] [讨论版] [命题人:admin] 题目描述 如下 ...

  2. 微信分享次数统计、微信公众号分享关注统计

    作为系列文章的第五篇,本文重点探讨数据采集层中的微信分享追踪系统.微信分享,早已成为移动互联网运营的主要方向之一,以Web H5页面(下面称之为微信海报)为载体,利用微信庞大的好友关系进行传播,实现宣 ...

  3. 用户IP访问次数统计

    技术源于生活,服务生活 线上地址:https://api.imibi.cn Redis存储 1.使用Redis的0号数据库,数据格式是hash. import redis con = redis.Re ...

  4. 红楼梦人物出场次数统计

    这个也是学习过程中的一个成果吧,希望大家能批评指正. 红楼梦人物出场次数统计.亮点在于,考虑了人物的别称,以及有较为丰富的排除词库.如凤姐的称谓就有许多,凤辣子,凤姐,王熙凤等等,还有黛玉,有林黛玉, ...

  5. java 记录微信转发次数_微信分享朋友圈记录分享次数统计实现

    业余时间研究微信的接口方法.记录下微信分享朋友圈记录分享次数统计实现:1.引入JS文件 2.通过config接口注入权限验证配置 3.通过ready接口处理成功验证 4.通过error接口处理失败验证 ...

  6. 数字重复次数统计软件

    作为码农的我们,有时候会想知道代码中或者文章中那些数字出现的次数排名详情 并且统计每个数的重复次数,并按照重复次数由高到低排序的软件 如果你也有这种数字统计需求,就用得到了 传送门:在线数字重复次数统 ...

  7. Android应用统计-使用时长及次数统计(一)

    关键字: 应用统计 Android源码 应用使用时长 应用使用次数 最近在做有关于应用统计有关的工作,主要是统计系统中客户端应用(非系统自带的那些基础应用,比如DownLoadManager),在每一 ...

  8. APEX日里面每个表的查询次数统计

    1.背景 通过APEX的报表查询情况,停止不再被查询的作业 2.思路 方法一: 1.apex自带的日志视图apex_workspace_activity_log里面只有二级菜单栏的统计次数 2.解析A ...

  9. 24、Pyqt 打开视频,关闭视频及眨眼睛次数统计

    基本思想:使用pyqt 开发一个打开摄像头和关闭摄像头,同时加入了人眼睛眨的次数统计: #!/usr/bin/python # -*- coding: UTF-8 -*- import sys imp ...

最新文章

  1. [置顶]       webservice系列2---javabeanhandler
  2. 个人中心数据接口的开发
  3. 【读书笔记】JavaScript高级编程(二)
  4. 有赞美业微前端的落地总结
  5. vue 固定div 滚动_vue.js-div滚动条隐藏但有滚动效果的实现方法
  6. CentOS 7 搭建 LAMP
  7. 以下不属于时序逻辑电路的有_静态时序分析圣经翻译计划——附录B:SDF
  8. 【开发工具】之linux下makefile编写
  9. 社区内放自助打印机,赚钱吗?
  10. WebGIS设计思想
  11. CRT软件使用-连接虚拟机
  12. 【天光学术】美术论文:湖南传统雕刻艺术的表现形式与特点(节选)
  13. 常用iOS开发网站资源
  14. 对比stm32,arm9研究方向
  15. nexus4刷机 android6.0,谷歌nexus 5刷机工具
  16. 安卓紧急警报_我们的紧急警报系统依赖于重叠的私有服务混乱局面
  17. 苹果手机计算机歌曲谱,苹果手机如何用歌曲做铃声
  18. 冰河在大学是如何度过的?
  19. windows2003 升级sp1,sp2 产品密匙无效
  20. js数组按中文拼音排序_学习排序算法,结合这个方法太容易理解了

热门文章

  1. NumPy - ndarray
  2. 9/100. Reverse Linked List
  3. 5/100. Single Number
  4. 使用URL在线语音合成
  5. Go语言 gRPC 实践(一)
  6. Vue.js not detected
  7. $.ajax()常用方法详解(推荐)
  8. csrf-token
  9. Microsoft SQL Server 存储过程
  10. Python 学习笔记(2)字典默认值和集合的操作