
算法
文章平均质量分 52
西溪漫步
这个作者很懒,什么都没留下…
展开
-
面试题——输入n和a,求s = a + aa + aaa + aaaa + aa...a的值,其中n、a是数字。例如n=5,a=2时,求2 + 22 + 222 + 2222 + 22222的值?
这是一道常用的面试题,n和a的值不固定,求和。咋一看,不好下手,但是仔细一瞅,很有规律,不定数a的值跟n有关,关键是要构造一个不定数a的表达式,这个表达式一构建出来,求和自然就so easy!定义一个变量存储a,n没增加一个,a就增加10倍,按照这个规律,可以构建出生成a的表达式,假设用一个变量num ,存储n个a的值,num可以表示成:num = 10 *a+a(a=2,n = 2,num=22,a=2,n=3,num = 22 * 10 + 2 = 222);就这样,最终的和就出来了,代码如下:.原创 2021-07-28 17:07:27 · 2405 阅读 · 0 评论 -
循环移位算法详解
循环移位算法就是数列中的每一个数的位置(索引)都向后移动一个数,最后一个数会移动到数列最前面,比如数列1,2,3,4,移动一次后会变成4,1,2,3,再次移动会会变成3,4,1,2,详细如下:lettestArr:Array<number>=[1,2,3,4];//移动的过程中,最后一个会被移掉,先保存一下lettheLastIndex:number=testArr.length-1;//3lettheLastOne:number=testArr[theLa...原创 2021-07-26 03:59:09 · 5025 阅读 · 0 评论 -
筹码组合算法
玩过棋牌游戏的同学应该都知道,有一排筹码去,里面有各种面值的筹码,比如1,2,5,10,20,50,100,200,500,1000,2000,5000,10000,20000,50000,100000等,每个面值的筹码对应一个筹码图标,当然图标可以重复利用,比如500的筹码可以跟500的筹码用同一个图标,我们自己下注的时候,我们会主动去选择对应的筹码,然后根据选择的筹码,点击的次数生成对应的筹码堆垛,但是如果这时有机器人下注,机器人下注的值我并不知道,不知道他要下多少,但是机器人下注完后,你得根据它下注的原创 2021-07-09 18:13:02 · 1362 阅读 · 0 评论 -
有限状态机简单实现
转载自:https://blog.youkuaiyun.com/a15354025323/article/details/80672202namespace FSM{ public class State { //指明当前状态机被哪个状态机所管理 public StateMachine stateMachine; //三种状态 ...转载 2019-03-07 10:27:53 · 955 阅读 · 0 评论 -
异或的应用
转载自:https://blog.youkuaiyun.com/rockpk008/article/details/49982925异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。它与布尔运算的区别在于,当运算符两侧均为1时,布尔运算的结果为1,异或运算的结果为0。简单理解就是不进位加法,如1+1=0,,0+0=0,1+0=1。...转载 2018-07-26 18:16:44 · 485 阅读 · 0 评论 -
异或应用小总结
转载自:https://blog.youkuaiyun.com/hulamua/article/details/524114461.交换交换a和b的简单写法 a ^= b; b ^= a; a ^= b; 2.一个整形数组,存1到n的所有整数,但缺省一个值,找出此值。先求1到n的异或,再和数组中所有数异或,结果就是要找的值。3.一个整形数组除一个数只出现一次外,...转载 2018-07-26 18:09:24 · 650 阅读 · 1 评论 -
感受异或的神奇
转载自:https://www.lijinma.com/blog/2014/05/29/amazing-xor/什么是异或?Wikipedia的解释:在逻辑学中,逻辑算符异或(exclusive or)是对两个运算元的一种逻辑析取类型,符号为 XOR 或 EOR 或 ⊕(编程语言中常用^)。但与一般的逻辑或不同,异或算符的值为真仅当两个运算元中恰有一个的值为真,而另外一个的值为非...转载 2018-07-26 17:54:04 · 321 阅读 · 0 评论 -
矩阵旋转90度
题目:给定一个n*n的矩阵,顺时针把矩阵旋转90度。比如说{{1,2,3}{4,5,6}{7,8,9}}。顺时针旋转90度为{{7,4,1}{8,5,2}{9,6,3}}。 解法一:时间复杂度为o(n*n),空间复杂度为o(n)。步骤:(1)把矩阵的行当做一个整体,逆序矩阵中的行,也就是说把matrix[i]行和matrix[len - i]进行交换。(2)在交换后的矩阵中,按照对角线交转载 2018-01-14 13:08:35 · 4558 阅读 · 0 评论 -
矩阵旋转90度
一维数组转置(首尾交换)[plain] view plain copypublic class array { public static void main(String args[]){ int data [] =new int [] {1,2,3,4,5,6}; exchange转载 2018-01-14 13:07:45 · 5939 阅读 · 0 评论 -
矩阵旋转45度
例如:A B C D E F G H I J K L M N O P Q R S T U V W X Y E D J C I O B H N T A G M S Y F L R X K Q W P V U 思路如上图: 在菱形之外的都是空格,菱形之内(可以使用函数判断)有两种点,一种是转载 2018-01-14 13:04:01 · 8375 阅读 · 0 评论 -
回旋矩阵二
打印 N*N顺时针螺旋数组,规律如下:// 1 2 3 4 5// 16 17 18 19 6// 15 24 25 20 7// 14 23 22 21 8// 13转载 2018-01-14 12:54:23 · 388 阅读 · 0 评论 -
回旋矩阵一
之前面试的时候有一道关于螺旋矩阵的算法题,此处转载一篇:结构图将螺旋矩阵分为四个区块对其逐个赋值的。比如基数是,第一区块第一行元素1、2、3,第二区块是4,第三区块5、6,以此类推。第一区块:赋值时行数不变,列数改变。第二区块:列数不变,行数改变。第三区块同第一区块、第四区块同第转载 2018-01-14 12:33:18 · 1381 阅读 · 0 评论 -
回旋矩阵
此处转载两篇关于回旋矩阵的文章,以下是链接:1、http://blog.youkuaiyun.com/yyh352091626/article/details/522389312、http://blog.youkuaiyun.com/xuchao1229/article/details/8117312转载 2018-01-14 12:28:45 · 292 阅读 · 0 评论