
算法题
文章平均质量分 54
永远的小白虾
无论什么时候,面对这计算机的浩瀚海洋,我都是小白虾
展开
-
战斗系统平衡性评估(算法题)
今天面试的时候,遇到了一道感觉蛮复杂的问题。题目游戏的战斗系统一般都需要平衡性评估,尤其是伤害输出能力。我们需要在各种战斗规则下,计算角色的最大伤害输出能力。以下题目都是单个或多个角色一起攻击单个目标,不考虑目标血量,只考虑伤害能力。(1)两个角色A和B,攻击冷却时间分别为k1,k2秒,每次攻击能分别造成d1,d2的伤害。只要未在冷却中,角色可以自由选择攻击的时机,但只能在整数秒发动攻击。战斗时长总长为t秒。k1,k2,d1,d2,t都是正整数。战斗中有额外的规则:若两个角色在同一时刻一起攻击,则每个原创 2021-08-18 22:10:19 · 2196 阅读 · 0 评论 -
回溯算法记录
当面对“组合”,“切割”,“子集”,“排列”,“棋盘”等问题时,我们可以使用回溯算法来求解,其属于纯暴力搜索,之所以会使用它,是因为通过简单的for循环暴力求解,并不能很好的求解这类问题。因为回溯算法一般而言会使用到递归函数,所以我们可以将回溯算法看成一棵n叉树,其宽度为待处理集合的大小,其深度为递归的深度。如:组合、切割、排列、棋盘等问题,都是获取的叶子节点的值,而子集问题则会记录每个节点的值。回溯算法的模板:void backtracking(参数){ if(终止条件) { 收集结果原创 2021-05-07 16:52:48 · 188 阅读 · 0 评论 -
动态规划(C++)
动态规划问题,大致可以分为两类:一是最优解问题,其目的是求某个问题的最小值或最大值。如:10000以内的k好数中任选三个的和,最大值为多少。二是组合问题,其目的是求某个事情发生的概率。如:长度为x的数字字符串,可以分解为4个小于255的数字,可以有多少种组合方式。面对这两种问题的解决方案也有两种:自上而下(记忆存储):从顶端开始分解问题,分解到最小并解决,然后返回保存的答案。如斐波拉契数列问题的递归求法便是记忆存储法。自下而上(表格填充):先解决较小的子问题,由子问题的解推算出后续问题的解,从原创 2021-03-01 14:23:49 · 1642 阅读 · 0 评论 -
leetcode 数组独数问题
在刷题的过程中,遇到了一道题。其题目是现在有一个整数类型的数组,数组中素只有一个元素只出现一次,其余的元素都出现两次。注意:你需要给出一个线性时间复杂度的算法,你能在不使用额外内存空间的情况下解决这个问题么?这么一道题,我是绞尽脑汁也没想出来。最后去看了看别人的解法,发现自己还是没办法看懂。public static int singleNumber(int[] A) { int num = 0; for(int i=0;i<A.length;i++){原创 2020-07-21 14:37:01 · 322 阅读 · 0 评论 -
面试题:打印1到最大的n位数
题目:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则从1打印到999.咋一看,这道题很简单,但是实际上却没有限制n的大小,如果单纯的使用int或者是long int来装输出值的话,就会导致溢出。所以我们需要使用字符串或者是数组。这里就采用字符串的方式来写一下。#include <iostream>using namespace std;void PrintToMaxOfNDigits(int n);int main(){ PrintToMaxOfNDigits原创 2020-07-14 16:13:03 · 180 阅读 · 0 评论 -
python 环形序列
长度为n的环状串有n种表示法,分别为从某个位置开始顺时针得到。在这些表示法中,字典序最小的称为“最小表示”。输入一个长度为n(n<=100)环状DNA串(只包含A,C,G,T)的一种表示法。任务是输出该环状串的最小表示。例如,CTCC的最小表示为CCCT,CGAGTCAGCT的最小表示为 AGCTCGAGTC。def less(s,p,q): n=len(s) for i in range (n): if(s[(p+i)%n]!=s[(q+i)%n]):原创 2020-06-16 09:17:26 · 924 阅读 · 0 评论 -
python版 韩信点兵
问题:相传韩信才智过人,从不直接清点自己的军队人数,只要人士兵先后以三人一排,五人一排,七人一排的变换队形,而他每次只掠一眼队伍的排尾就知道总人数。输入包含多组数据,每组数据包含三个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100.输入到文件结束为止。样例输入:2 1 62 1 3样例输出:Case 1 :41Case 2:No answer解题思路:很简单的一道题,只要你理解到排尾就是原创 2020-06-15 18:12:36 · 7642 阅读 · 0 评论