2 u010759408 u010759408 于 2016.04.19 15:23 提问

一道算法或者逻辑面试题,求思路

100个面值是1-50随机分布的硬币排成一列,你和另一个人一人一个的取,只能从队列头部和尾部取。如何保证最后你取的硬币面值和比你对手多?

2个回答

lm_whales
lm_whales   Rxr 2016.04.19 15:43

保证你取倒数第二张?
还是和最大?
1~50 面值按照谁家的硬币?
美元?

美元面值:
现流通硬币有1 分、5 分、10分、1/4 元、1/2 元、1 元六种面值。
正面与背面所铸图案如下:
1 分 - 正面: Lincoln 林肯 ,背面:林肯纪念堂 5 分 - 正面:Jefferson 杰佛逊 ,背面:杰斐逊的故居

10分 - 正面: Roosevelt 罗斯福 ,背面:火炬,橄榄枝,橡树枝 1/4 元 - 正面:Washington 华盛顿 ,背面: 白头鹰
1/2 元 - 正面:Kennedy 肯尼迪 ,背面:总统专用国徽 1 元 - 正面:Sacagawea 莎卡嘉薇亚 ,背面:飞翔中的白头鹰
此外还发行过采用这六种面值的与上述图案不同的硬币,及5 分、10分、1/4 元、1/2 元、1 元面值的纪念币。
以前还发行过3分的硬币,现已不能流通。

人民币硬币面值
1分,2分,5分,(退出流通了)
1角,5角,1元(正在用):

既然是双端队列,你可以取走当期最大价值的,换成对手,也是如此,如果是求和的话,两种取法选最大,这是01背包
如果是最后一次面值最大,采用中间向两头扩展的办法从而保证能取到最大的

lm_whales
lm_whales 最优解那个,效率太低,可能会堆栈溢出,但求出的结果是最优结果。
大约 2 年之前 回复
lm_whales
lm_whales 效率要高的多,但不一定是最优解
大约 2 年之前 回复
lm_whales
lm_whales 有一个局部最优的方法,可是不能保证结果一定是最优的(可能 你获得超额利益,也可能对手,但是多数情况下,是最优的结果)
大约 2 年之前 回复
lm_whales
lm_whales 有一个思路,但是效率太低了,我在考虑一下能否改进改进
大约 2 年之前 回复
u010759408
u010759408 您好,最后是所有硬币和最大;硬币和人民币和美元没太大关系,取值从1-50即可;不知道是否能详细描述下思路,谢谢
大约 2 年之前 回复
CSDNXIAOD
CSDNXIAOD   2016.04.20 08:41

一道javascript算法面试题
一道别致的算法面试题
网易有道的一道算法面试题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java实现最大公约数和最小公倍数(每天一道算法题)
题目:输入两个正整数,求其最大公约数和最小公倍数。程序思路: 除数不能为0 将较大的那个数对较小的那个数取余;(如果a>=b,那就a%b), 取余得出的结果为下次预算的除数,上面较小的那个数将作为被除数 知道运算到较小为0时,返回较大的数,这个数就是最大公约数 最小公倍数就是 原来的两个公倍数的积除以最大公约数。 下面java代码:package com.imooc; import java.ut
一道常被人轻视的前端JS面试题
一道常被人轻视的前端JS面试题 目录 前言 第一问 第二问 变量声明提升 函数表达式 第三问 第四问 第五问 第六问 构造函数的返回值 第七问 最后 前言 年前刚刚离职了,分享下我曾经出
一道腾讯面试题(使用递归、循环、数组实现上台阶方法)
一道tx面试题
一道javascript算法面试题
实现一个数组内所有元素的和。 代码如下: function add(runningTotal, currentValue) { return runningTotal + currentValue; } var nums = [1,2,3,4,5,6,7,8,9,10,11]; var sum = nums.reduce(add); console.log(sum); // 显示55
程序员,你的逻辑思维有多强(一道推理题测试,不可错过)
  要做一个程序员,逻辑思维能力是关键,写程序也是对该能力的一种锻炼,这里有一个测试题,你可以对自己现在的能力进行评诂。也希望大家回贴谈谈感受。  本题是柏林大学的一次考试题,要求在30分钟内做出,不过只有少于10%的人完成了要求。计分是这样的,共150分,从1到30分钟,每加1分钟减2分,那么30分钟答出就是90分,是及格分;从30分钟以后每加1分钟减1分。我当时用了22分钟,大家也试试,看
看网友的一道腾讯面试题有感
10000+个数字钟找出top100 Java代码   import java.util.Arrays;   import java.util.Random;     public class Top100 {       private static Node head = null;       private static Node end = null;
一道经典面试逻辑题的python解法
前言: 好早之前看到的一个逻辑题:有两个2到99之间的整数,a知道这两个数的和,b知道这两个数的积。 第一句:a对b说:我不知道这两个数是多少,但我确信你也不知道。 第二句:b说:我知道了。 第三句:a说:我也知道了。 问这两个数是多少? 题不难,只是手动去找没有python写程序找的快,而且用python程序可以在后面进行进一步的探索。 分析: 首先是a
求中位数!面试题
1 两个数组x[]、y[],长度为n,而且都经过排序从小到大排列,请编写C/C++程序求出两个数组合并后(仍然从小到大排列)的中位数,要求比较次数少于n。 #include "iostream.h" #include "stdio.h" #define num 4 i
面试题-Java算法篇
最近得空,就去一些招聘网站做了些面试题,为方便大家共同学习,Java相关的算法就在这篇文章里记录一下,以后有空会持续更新,大家有更好的写法也可以留言告诉我。Android篇的传送门1. 使用递归完成以下输出:* ** *** **** *****/** * 打印星号, 第一行1个, 以后每行增加一个 * * @param row 行数 */ public void printStart(in
有趣的算法、逻辑面试题
来自:JavaRanger – javaranger.com 链接:http://www.javaranger.com/archives/1318 1、A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁