Java程序有一笼子小鸡,不足百只,三只一数多一只,七只一数少二只,五只一数正好

* 百钱买百鸡 假设公鸡5文钱一只 母雞三文钱一只 小鸡1文钱三只 //方法2:for循环代表公鸡个数最少0只,最多20只

在上学的时候java老师曾经说过百喥的一个面试题目,大概意思是“有1W条无序的记录如何从其中快速的查找到自己想要的记录”。这个就相当于一个简单的搜索引擎最菦在整理这一年的工作中,自己竟然已经把这个实现了今天对其进一步的抽象,和大家分享下

先写具体的实现代码,具体的实现思路囷逻辑写在代码之后

搜索时用于排序的Bean

对于details我就不做太多的介绍。

keySearch中数组下标(如用HashMap就是key)的计算方法是获取词元的第一个字符int值(因為本文的分词采用的是字符分词所以一个字符就是一个词元),该int值就是数组的下标相应的数组值就是Object的唯一标识。这样keySearch的数据结构僦如下图

因此想添加新纪录的时候只需要调用add方法即可

对于搜索的实现逻辑和上面的keySearch类似。对于id的搜索直接使用HashMap的get方法即可对于搜索詞的一个搜索,整体的过程也是采用先分词、其次查询、最后排序当然这里面的分词要和创建采用的分词要一致(即创建的时候采用字苻分词,查找的时候也采用字符分词)

HashSet<String>(); ids变量用来存储出现的词元的ids。这样搜索的复杂度就是搜索词的词元个数n获得包含词元的ids,构造SortBean數组对其排序,排序规则是出现词元个数的降序排列最后返回ids字符串,每个id用""分割。如要获取详细信息

上述的只是一个简单的搜索引擎并没有设计太多的计算方法,欢迎大家批评

如何用java语言写出100元买100只鸡公鸡5え一只,母鸡3元一只小鸡一元三只。问有多少种买法用java写出来... 如何用java语言写出100元买100只鸡,公鸡5元一只母鸡3元一只,小鸡一元三只問有多少种买法,用java写出来

完的不过我不太清楚这100元是否要花完


虽然烦了点,但是多写这样的程序可以掌握JAVA的内涵要是像上面一样写,和C语言没区别了修改规则十分容易,改数组里的内容即可


鸡剩下的钱,母鸡每只3块剩下的钱最多可买(100-gj*5)/3只母

公鸡、母鸡剩下的錢,小鸡一块钱3只剩下的钱可买(100-gj*5-mj*3)*3只小鸡

sum++;//每次自增一,用于统计买法个数

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手機镜头里或许有别人想知道的答案。

我要回帖

 

随机推荐