笔试题-牛羊吃草问题

2022-6-22 diaba 笔试题

package com.jiucaiyuan.net.question; /** * 牛羊吃草问题:有先吃和有后吃,看谁刚好吃完所有草 * 吃草规则, 吃的时候只能吃4^m次幂份,看谁会胜利 * * @Author jiucaiyuan 2022/6/22 23:11 * @mail services@jiucaiyuan.net */ public class EatGrass { /** * 思路1:先手先吃,尝试所有情况,如果能胜利,就先手胜利,否则后手胜利,暴力尝试 * * @param n ...

阅读全文>>

评论(0) 浏览(542)

笔试题-最少的袋子数装苹果

2022-6-22 diaba 笔试题

package com.jiucaiyuan.net.question; /** * 【问题】小虎去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装, * 包装不可拆分。可是小虎只想购买恰好n个苹果,小虎想够买尽量少的袋数方便携带。如果不能购买 * 恰好n个苹果,小虎将不会购买,输入一个整数n,表示小虎想购买的苹果个数,返回最小使用多少 * 个袋子,如果无论如何都不能正好装下,返回-1. * 思路: * 思路1:输入n,直接用8类型的袋子看最多需要多少个,n/8,剩下的苹果是否能用6类型的袋子正 * 好装下,如果不行,8类型袋子减少一...

阅读全文>>

评论(0) 浏览(532)

递归DP-找零钱的方法数

2022-6-12 diaba 笔试题

package com.jiucaiyuan.net.question; /** * 找零钱的方法数 * 给定一个数组,表示总共有币种的面值,(不重复的正数数组) * 再给定一个金额数aim,问题是有多少种钱币的组合,可以正好满足指定金额(某一个金额的钱币张数不限) * * @Author jiucaiyuan 2022/6/12 14:31 * @mail services@jiucaiyuan.net */ public class ChangeMethod { /** * @param arr arr都是正数,没有重...

阅读全文>>

评论(0) 浏览(496)

递归DP-走step步后仍在一个区域的概率问题

2022-6-12 diaba 笔试题

package com.jiucaiyuan.net.question; /** * @Author jiucaiyuan 2022/6/5 23:00 * @mail services@jiucaiyuan.net */ public class BobWalkOnGrid { /** * 在N*M的区域范围内,Bob在(i,j)位置,走step步之后,仍然在区域内的点数 * * @param N * @param M * @param i * @param j * @...

阅读全文>>

评论(0) 浏览(500)

递归DP-中国象棋马跳到目标位置的走法

2022-6-5 diaba 笔试题

package com.jiucaiyuan.net.question; /** * 中国象棋 * * @Author jiucaiyuan 2022/6/5 17:43 * @mail services@jiucaiyuan.net */ public class ChineseChessHorseJump { /** * 象棋,马从(0,0)位置,跳step步到达(x,y)位置的方法数 * * @param x 目的地x轴坐标 * @param y 目的地y轴坐标 * @pa...

阅读全文>>

评论(0) 浏览(586)

递归DP-金币组合最少金币数

2022-6-5 diaba 笔试题

package com.jiucaiyuan.net.question; /** * @Author jiucaiyuan 2022/6/5 11:33 * @mail services@jiucaiyuan.net */ public class CoinAmount { /** * 暴力递归 * 给一个正数数组,每个数表示一枚硬币的面值,给定一个数值,从硬币中选择得到这个金额的最少硬币数 * 比如指定硬币有[1,4,7,2,4,3,5,1,3] * 指定金额10,那么最少硬币数是7+3,两枚硬币,返回2 ...

阅读全文>>

评论(0) 浏览(565)

递归DP-机器人到达目的地方法数

2022-6-5 diaba 笔试题

package com.jiucaiyuan.net.question; /** * @Author jiucaiyuan 2022/6/5 10:34 * @mail services@jiucaiyuan.net */ public class Rabbit { /** * 给了一个固定值n,表示总共有多少个位置 * 开始机器人在s位置上,每次可以迈一步,想要到达e位置,总共要走k步,有多少种走法可以到达e位置 * 机器人可以往左走,也可以往右走 * * @param n 总共位置数 1 ...

阅读全文>>

评论(0) 浏览(573)

位运算-实现加、减、乘、除

2022-6-4 diaba 笔试题

package com.jiucaiyuan.net.question; /** * 问题:给定两个有符号32位整数a和b,不能使用算数运算符,实现加、减、乘、除运算 * 要求:如果给定a、b执行加减乘除运算结果就会导致数据的溢出,那么你实现的函数不必对此负责, * 除此之外,请保证计算过程不发生溢出 * <p> * 直到进位d为0时,最终的a就是a和b的和 * * @Author jiucaiyuan 2022/6/4 22:26 * @mail services@jiucaiyuan.net */ public class Ma...

阅读全文>>

评论(0) 浏览(537)

位运算-判断数是否是2的幂、4的幂

2022-6-3 diaba 笔试题

package com.jiucaiyuan.net.question; /** * <pre> * 判断一个32位正数,是不是2的幂、4的幂 * 2的幂,一个数的二进制只有一个1,一定是2的幂 * 方法1:依靠拿到这个数最右侧的1的方法,然后再和原 数进行比较,如果相等,是,否则不是 * 方法2:如果一个数x只有一个1,那么x-1,原来1变为0,后面所有0都变为1,那么 `x & (x-1) == 0` * 4的幂,一个数的二进制只有一个1,并且 `x & 0101010101 != 0` * </...

阅读全文>>

评论(0) 浏览(586)

位运算-不做比较判断得到两个数中的大数

2022-6-3 diaba 笔试题

package com.jiucaiyuan.net.question; /** * * 题目:给定两个有符号32位整数a和b,返回a和b较大的一个 * 要求:不用做任何比较判断 * * &(与)、|(或)、~(非)和 ^(异或) * * @Author jiucaiyuan 2022/6/3 23:13 * @mail services@jiucaiyuan.net */ public class GetMax { /** * 请保证参数n,不是1就是0的情况下 * 1 ——> 0 ...

阅读全文>>

评论(0) 浏览(585)

笔试题-田忌赛马

2022-5-13 diaba 笔试题

package com.jiucaiyuan.net.algrithm.audition; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.PriorityQueue; public class MrTianHorseRacing { /** * <pre> * 田忌赛马 * 两个数组没有重复元素,第一个数组固定按照从小道大出场比赛,数组较大的获胜 * 给出第二个...

阅读全文>>

评论(0) 浏览(626)

算法-二叉树-折纸问题

2022-4-11 diaba 笔试题

package com.jiucaiyuan.net.algrithm.tree; /** * <pre> * 【问题】折纸问题 * 【题目】请把一张纸条竖着放在桌子上,然后把纸条从下面向上方对这一次,压出折痕后展开, * 此时折痕是凹下去的,即折痕凸起的方向指向纸条的背面; * 如果从纸条的下方向上连续的折2次,压出折痕后展开,此时有三条折痕, * 从上到下依次是下折痕、下折痕和上折痕;给定一个输入参数n, * 表示纸条都从下边向上连续对着n次,请从上到下打印所有折痕方向。 * 例如:n=1时,打印:down;n=2时,打印:down dow...

阅读全文>>

评论(0) 浏览(531)

算法-二叉树-序列化&反序列化

2022-4-11 diaba 笔试题

package com.jiucaiyuan.net.algrithm.tree; import java.util.LinkedList; import java.util.Queue; import java.util.Stack; /** * 二叉树的序列化与反序列化 * * @Author jiucaiyuan 2022/4/11 22:57 * @mail services@jiucaiyuan.net */ public class SerializeAndDeserializeTree { /** * 先序遍历-序列化...

阅读全文>>

评论(0) 浏览(459)

算法-二叉树-最低公共祖先

2022-4-11 diaba 笔试题

package com.jiucaiyuan.net.algrithm.tree; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; /** * <pre> * 【问题】给定二叉树的两个节点node1和node2,找到他们最低公共祖先 * 【概念】最低公共祖先:两个节点往root节点的链路,第一个相交的节点 * 【思路】 * </pre> * * @Author jiucaiyuan ...

阅读全文>>

评论(0) 浏览(482)

算法-二叉树-判断满二叉树

2022-4-10 diaba 笔试题

package com.jiucaiyuan.net.algrithm.tree; /** * <pre> * 【问题】判断一棵树是满二叉树(Full Binary Tree) * 【概念】满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。 * 也就是说,如果一个二叉树的深度为K,且结点总数是(2^k) -1 ,则它就是满二叉树。 * (一棵满二叉树的每一个结点要么是叶子结点,要么它有两个子结点,但是反过来不成立, * 因为完全二叉树也满足这个要求,但不是满二叉树) * 【思路】获得二叉...

阅读全文>>

评论(0) 浏览(518)

算法-二叉树-判断完全二叉树

2022-4-10 diaba 笔试题

package com.jiucaiyuan.net.algrithm.tree; import java.util.LinkedList; import java.util.Queue; import java.util.Stack; /** * <pre> * 【问题】判断一棵树是完全二叉树(Complete Binary Tree) * 【概念】完全二叉树:叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部(树只有最后一层可能出现不满,只能是右下角缺少子树) * 【思路】通过二叉树的宽度优先遍历,判断 * >...

阅读全文>>

评论(0) 浏览(1253)

算法-二叉树-判断搜索二叉树

2022-4-10 diaba 笔试题

package com.jiucaiyuan.net.algrithm.tree; import java.util.Stack; /** * <pre> * 【问题】判断一棵树是否是搜索二叉树(Binary Search Tree),(又:二叉搜索树,二叉排序树) * 【概念】搜索二叉树:树的左子树比头结点小,右子树比头结点大(左子<头<右子) * 【思路】通过二叉树的中序遍历,判断树中节点一直是升序的,不出现降序即可 * </pre> * * @Author jiucaiyuan 2022/4/10 16:42 ...

阅读全文>>

评论(0) 浏览(442)

算法-二叉树-宽度优先遍历&树宽度

2022-4-10 diaba 笔试题

package com.jiucaiyuan.net.algrithm.tree; import java.util.HashMap; import java.util.LinkedList; import java.util.Queue; /** * 二叉树的宽度优先遍历(求一个二叉树的宽度) * 使用辅助工具队列LinkedList,压入队列,出队时进行访问 * * @Author jiucaiyuan 2022/4/9 23:15 * @mail services@jiucaiyuan.net */ public class TreeMax...

阅读全文>>

评论(0) 浏览(453)

算法-链表-找到单链表入环节点

2022-4-7 diaba 笔试题

问题 判断一个单链表是否存在环,如果存在返回入环节点 要求 时间复杂度O(N),空间复杂度O(1) 方案 快慢指针:从头结点开始,快指针一次走两步,满指针一次走一步,如果这两个指针相遇后,快指针回到头结点,两个指针一起开始走,每次走一步,再次相遇的节点即是入环节点 代码 package com.jiucaiyuan.net.algrithm.linked; import java.util.HashSet; import java.util.Set; /** * 【问题】...

阅读全文>>

评论(0) 浏览(482)

Powered by emlog 京ICP备15045175号-1 Copyright © 2022