算法编程题

Posted ~灵动奇迹~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法编程题相关的知识,希望对你有一定的参考价值。

    1

  3            5

    7        9      11     

 13    15      17     19

 

第N行相加的和是多少?

 N*N*N;

 

$string = "The sunset sets at twelve o\\\' clock.";
$arr = [
\'a\' => 1,
\'b\' => 2,
\'c\' => 3,
\'d\' => 4,
\'e\' => 5,
\'f\' => 6,
\'g\' => 7,
\'h\' => 8,
\'i\' => 9,
\'j\' => 10,
\'k\' => 11,
\'l\' => 12,
\'m\' => 13,
\'n\' => 14,
\'o\' => 15,
\'p\' => 16,
\'q\' => 17,
\'r\' => 18,
\'s\' => 19,
\'t\' => 20,
\'u\' => 21,
\'v\' => 22,
\'w\' => 23,
\'x\' => 24,
\'y\' => 25,
\'z\' => 26,
];
$array = str_split(preg_replace(\'/\\\'|\\\\\\|\\s|\\\\./gi\',\'\',strtolower($string)));
$tmp = "";
foreach($array as $v)
{
if(!empty($v) && in_array($arr[$v],$arr)){
$tmp .= $arr[$v].\' \';
}
}
dump(rtrim($tmp));

替换成数字

 

 

 

1.设有一组关键字序列{5,8,14,20,31,55,78,81,93,97,111},使用二分(折半)法查找关键字93需要进行多少次比较()

A. 2

B. 3

C. 4

D. 5

 low = 0, high = 10    mid=(low+high)/2=5
    93>55
 low = 6, high = 10    mid=(low+high)/2=8
    93 == 93
2.在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行)。给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益。请采用实践复杂度低的方法实现。

给定价格序列prices及它的长度n,请返回最大收益。保证长度小于等于500。

测试样例:[10,22,5,75,65,80],6

返回:87

 3.共52张普通牌,牌面为2,3,4,5,6,7,8,9,10,J,Q,K,A之一,大小递增,各四张; 每人抓三张牌。两人比较手中三张牌大小,大的人获胜。

对于牌型的规则如下:

1.三张牌一样即为豹子

2.三张牌相连为顺子(A23不算顺子)

3.有且仅有两张牌一样为对子 豹子>顺子>对子>普通牌型 在牌型一样时,比较牌型数值大小(如AAA>KKK,QAK>534,QQ2>10104) 在二人均无特殊牌型时,依次比较三张牌中最大的。大的人获胜,如果最大的牌一样,则比较第二大,以此类推(如37K>89Q) 如二人牌面相同,则为平局。

输入描述:

输入两个字符串代表两个玩家的牌(如”10KQ” “354”),先输入的作为玩家1,后输入的作为玩家2

输出描述:

1 代表 玩家1赢 0 代表 平局 -1 代表 玩家2赢 -2 代表不合法的输入

输入例子:

KQ3 3Q9

10QA 6102

5810 7KK

632 74J

10102 K77

JKJ 926

68K 27A

输出例子:

4.设一组初始记录关键字序列为(49、38、65、97、76、13、27、49),则以第一个关键字49为基准而得到的一趟快速排序结果是()

A. 38,13,27,49,49,65,97,76

B. 13,27,38,49,65,76,97,49

C. 27,38,13,49,76,97,65,49

D. 27,38,13,49,97,76,65,49

 

 

 

 

以上是关于算法编程题的主要内容,如果未能解决你的问题,请参考以下文章

12道算法与编程面试题

前端如何应对笔试算法题?(用node编程)

12道Java算法与编程面试题

算法导论第1章编程题自选

❤️TikTok字节跳动编程题实战2022校招——吐血分享总结。

算法编程题