
每周一算
JandMin
野蛮生长
展开
-
【每周一算】顺时针打印一个矩阵
如题,顺时针的打印一个矩阵。比如输入矩阵:1 2 3 4 5 6 7 89 10 11 1213 14 15 16依次打印出:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10解题思路:顺时针打印,把这个矩阵想象成一个圆形,一个线团,从1开始抽,让线团滚起来,是不是这么回事?这不...原创 2019-05-24 09:15:34 · 263 阅读 · 0 评论 -
【每周一算】完美数,java获取
以下来自百度百科:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。完美数的特性:(1)所有的完全数都是三角形数。例如:6...原创 2019-08-09 14:29:39 · 670 阅读 · 0 评论 -
【每周一算】求最后剩下的人的是第几个(一圈人报数,报到3的退出)
题目:有 n 个人围成一圈,顺序排好。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几位?解题:例如 n = 2, 最后留下来的是2 n = 3, 最后留下来的是2 n = 4, 最后留下来的是1 n = 5, 最后留下来的是4这个题目,写着写着就有思路了。package com.jandm...原创 2019-08-09 14:23:02 · 514 阅读 · 0 评论 -
【排序】冒泡排序及优化
以下介绍来自百度百科:冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同...原创 2019-07-17 21:40:28 · 276 阅读 · 0 评论 -
【每周一算】数字魔法(特殊的数字)
在java中存在一些特殊的数字,他的结果可能跟我们的常规逻辑不一样,比如绝对值式负数、加1反而比自己更小...来看一下。/** * @description: 数字魔法 * @author: JandMin **/public class MagicNumber { public static void main(String[] args) { // 越...原创 2019-07-12 11:49:41 · 436 阅读 · 0 评论 -
【每周一算】根据上排给出十个数,在其下排填出对应的十个数
说是一面试题,原题如下:给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数。 上排的十个数如下: 【0,1,2,3,4,5,6,7,8,9】举一个例子, 数值: 0,1,2,3,4,5,6,7,8,9 结果: 6,2,1,0,0,0,1,0,0,0我这里做一个扩展,给出上排一组数字,得出下排...原创 2019-07-12 19:05:53 · 433 阅读 · 0 评论 -
【排序】选择排序及优化
我们常用的十大排序算法:选择排序、冒泡排序、插入排序、堆排序、希尔排序 、归并排序、快速排序、桶排序、计数排序、基数排序。今天实现的是选择排序的算法。package com.jandmin.demo.leetcode.sort;import java.util.Random;/** * @description: 排序算法: * 用第一个位置...原创 2019-07-02 12:31:17 · 295 阅读 · 0 评论 -
【每周一算】杨辉三角(巴斯卡三角形)
杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。特性:每个数等于它上方两数之和。 每行数字左右对称,由1开始逐渐变大。 第n行的数字有n项。 第n行的m个数可表示为C(n-1...原创 2019-06-26 18:11:50 · 687 阅读 · 0 评论 -
【每周一算】斐波那契数列FibonacciSequence
以下来自百度百科:斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=2, F(n)=F(n-1)+F(n-2)(n>=...原创 2019-06-26 10:42:05 · 458 阅读 · 0 评论 -
【每周一算】一张大饼切n刀,最多可以切多少块?
这是无意中在一个录音中听到的一个题目:一张很大很大的饼,给你一把足够长的刀,切n刀,最多可以得多少块?这个问题听起来很简单,还是用程序记录一下吧。解题:一刀都不切,有1块饼;切第一刀,得2块饼;切第二刀,这一刀跟原来那一刀有一个交点,把两块再分出两块,2+2=4;切第三刀,为了得到更多,要让这一刀跟原来两刀都有交点,4+3=7;切第四刀,为了得到更多,要让每一刀都跟之前得刀...原创 2019-06-14 12:38:53 · 11718 阅读 · 2 评论 -
【每周一算】汉诺塔(河内塔)
(来自百度百科)一位法国数学家曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根...原创 2019-06-13 11:48:27 · 549 阅读 · 0 评论 -
【每周一算】给出一个排好序的数组和一个数,求数组中连续元素的和等于所给数的子数组
给出一个数组,如:[1,2,2,3,5,6,7,8,9],再给一个数5,求数组中连续元素的和等于5个子数组:[1,2,2]和[2,3]解题:1、从第一个数开始往后加,直到 == 给定的数,符合要求,返回结果;如果 > 给定的数,结束,不返回结果2、再从第二个数开始加 ....代码如下:package com.jandmin.demo.leetcode;import j...原创 2019-06-06 09:51:20 · 1328 阅读 · 2 评论 -
【每周一算】一些特殊的数:回文数、质数、质因数、公约数
如题,回文数只是写了一个判断方法。最大公约数写了两个方法。看代码吧。package com.jandmin.demo.leetcode;import com.alibaba.fastjson.JSONObject;import org.assertj.core.util.Lists;import java.util.List;/** * @description: 回文数...原创 2019-08-09 17:51:08 · 680 阅读 · 0 评论