方法-关于一个算法功能的逻辑实现问题

问题描述

关于一个算法功能的逻辑实现问题

有一堆数字,从1到100顺序排序。然后对这些数字进行了若干次移动,顺序打乱了。然后将某些数字删除。

通过一些操作后,又将数字重新从1到100顺序排序了。

但是需要通过一个方法:将这些数字排序成移动后未删除之前的顺序?

解决方案

这堆数字是否有重复的,怎么删除的数字,按照什么规律。
如果这个规律可以根据剩下的数字倒退出来,得到删除数字的位置,那么就可以得到移动后未删除之前的顺序

解决方案二:

如果删除本身没有规律,是没有办法还原的

解决方案三:

虽然在可能恢复的情况下找到复原的算法比较困难,但是在数学上证明无法恢复的情形是很简单的。

只要你能找出一个反例,即存在这样两个乱序的序列,删除其中的某个或者某几个数字,得到的数字重新排序后构成完全相同的序列。

如果这个反例存在,那么很明显你没有办法找到一个算法,确定原始数据的序列。

解决方案四:

这堆数字没有重复。

删除的话,如果本身移动后的顺序,中间数字删除之后,会将这个数字之后的数字往前推。本身数字个数也会减少。

解决方案五:

你的排序算法一步一步记录下来,如果可逆的话就在走一遍逆回去

解决方案六:

能不能写几行代码将删除前的序列保存一下 相当于一个旧版本一样的 如果可以这样做的话 问题就可以很简单了 只是您的任务要求可以么?

解决方案七:

假设是不重复的数值100个元素算法是确定的,无论如何打乱顺序:只要把序和值进行对比就知道该在什么位置,序总是小于值1,即序0值1,之后用减法直接找到位置。

解决方案八:

在删除方法中添加一个功能,存储这100个数据

时间: 2024-09-20 00:02:58

方法-关于一个算法功能的逻辑实现问题的相关文章

纹理-完成下面任意一个可视化功能模块的详细设计,包括数据模型的选择、功能设计、算法描述、实现过程

问题描述 完成下面任意一个可视化功能模块的详细设计,包括数据模型的选择.功能设计.算法描述.实现过程 完成下面任意一个可视化功能模块的详细设计,包括数据模型的选择.功能设计.算法描述.实现过程 1. 三维地质体建模功能(可基于钻孔数据.剖面数据或者混合数据展开设计) 2. 三维地形多层次细节(LOD)显示功能(可基于TIN地形或者GRID地形展开设计) 3. 复杂地物(建筑物)建模功能设计(造型.插值.贴纹理等) 4. 地质体三维矢量剪切分析功能(可基于BSP树体剪切或者B-Rep模型面剪切展开

想给按钮做一个密码功能,有什么方法

问题描述 想给ASP.Net网页里的按钮做一个密码功能点击按钮,跳出对话框,输入密码,才能执行按钮的内容输入密码时,显示星号用什么可以实现?Javascript,VBScript? 解决方案 解决方案二:你可以建立一个层然后点击按钮的时候显示这个层然后层上面进行提交和验证解决方案三:学习,不会解决方案四:点按钮-->出现DIV层-->DIV中有TEXTBOX-->TEXTBOX类型是PASSWORD-->选择确定-->回服务器校验-->处理相关逻辑解决方案五:PS:JS

开发一个Swing功能时的一点总结

  对JTextField进行效验,有两个途径:(1)是使用javax.swing.InputVerifier在获取焦点时进行校验(2)在点击"确定"按钮的监听事件中对控件的值进行校验 鉴于涉及的业务比较多,代码结构已经确定,如果在"确定"按钮的监听事件中进行效验,需要增加一个步骤,并且并不是所有的业务都需要这个效验,就倾向于使用javax.swing.InputVerifier进行,这样做有两个好处,(1)分离业务逻辑与前端 (2)代码更优雅 javax.swin

Angular从零到一2.2 建立一个服务完成业务逻辑

2.2 建立一个服务完成业务逻辑 如果我们把登录的业务逻辑在onClick方法中完成,这样当然也可以,但是这样做的耦合性太强了.设想一下,如果我们增加了微信登录.微博登录等,业务逻辑会越来越复杂,显然我们需要把这个业务逻辑分离出去. 那么我们接下来创建一个AuthService吧,首先我们要在在src中新建一个叫做core的文件夹(src\app\core),然后命令行中输入 ng g s core\auth (s这里是service的缩写,core).auth.service.ts和auth.

批量修改文件后缀,有什么方法可以实现这个功能。

有很多时候我们需要进行这项功能,但是需要这个功能大部分是在处理图片上.如果你是要批量修改文件名的话,那么可以看下<win7实用小功能一键完成批量改照片名字 >. 1 批量修改文件后缀的准备工作: 把所有需要改后缀的文件遇到同个文件夹里面,文件里面别放不需要改后缀的文件.因为等下这个文件夹里面的后缀全部会变成一样的,如果你放了不需要改的文件,等下你又需要改回来. 2 在文件里面建个改所有文件后缀的小脚本. 新建一个记事本: 输入:ren *.cgi(现在文件的后缀) *.jpg(想要改成什么后缀

我用opencv2.4编写了一个算法并生成了.DLL ,并在我电脑上用C#调用成功, 但在没有安装opencv2.4.9电脑上用C#使用, 请问怎把用到的op

问题描述 我用opencv2.4.9+VS2010平台上用C++编写了一个算法并生成了.DLL,并在我电脑上用C#调用成功,但是在没有安装opencv2.4.9的电脑上用C#使用,请问怎把用到的openCV库里的.DLL也一起封装到我要生成的算法代码的DLL中,让其他没有安装opencv2.4.9的电脑的C#调用?谢谢指教,不胜感激! 解决方案 解决方案二:大家有好的方法,可以发我邮箱3044757309@qq.com,谢谢大家了,不胜感激......解决方案三:1.不要嫌麻烦,把opencv的

分布式系统中的RPC请求经常出现乱序的情况 写一个算法来将一个乱序的序列保序输出

分布式系统中的RPC请求经常出现乱序的情况.  写一个算法来将一个乱序的序列保序输出.例如,假设起始序号是1,对于(1, 2, 5, 8, 10, 4, 3, 6, 9, 7)这个序列,输出是:  1  2  3, 4, 5  6  7, 8, 9, 10 上述例子中,3到来的时候会发现4,5已经在了.因此将已经满足顺序的整个序列(3, 4, 5)输出为一行. 要求:  1. 写一个高效的算法完成上述功能,实现要尽可能的健壮.易于维护  2. 为该算法设计并实现单元测试 我的思路是:  假设输入

推荐一个算法编程学习中文社区-51NOD【算法分级,支持多语言,可在线编译】

    最近偶尔发现一个算法编程学习的论坛,刚开始有点好奇,也只是注册了一下.最近有时间好好研究了一下,的确非常赞,所以推荐给大家.功能和介绍看下面介绍吧.首页的标题很给劲,很纯粹的Coding社区....虽然目前人气可能一般,但这里面题目和资源还是比较丰富的,希望给初学者一个帮助. 本文原文地址:[推荐]一个算法编程学习中文社区-51NOD[算法分级,支持多语言,可在线编译] 1.51NOD论坛介绍     该论坛网址:http://www.51nod.com/index.html     论

请教一个算法问题时间复杂度要求是(1)

问题描述 请教一个算法问题时间复杂度要求是(1) 做项目的时候有一个处理大致是这样的:需要每次插入map;每次输入是(1,0),(2,0),(3,0):(2,1),(3,1)...当key是新添加的或者key对应的count大于前一次就要把这个key拿出来,时间复杂度要求是O(1), 请教大家有没有好的方法 解决方案 不可能事件复杂度是1,最低是LogN,不过这个很接近1了.除非你有无限制的内存,然后直接地址映射. 解决方案二: 一个数组中只有0,1,2三个元素,进行排序,要求时间复杂度为O(n