牛客
猕猴桃女孩
那个追梦的人鸭!
展开
-
地下迷宫-牛客
小青蛙有一天不小心落入了一个地下迷宫,小青蛙希望用自己仅剩的体力值P跳出这个地下迷宫。为了让问题简单,假设这是一个n*m的格子迷宫,迷宫每个位置为0或者1,0代表这个位置有障碍物,小青蛙达到不了这个位置;1代表小青蛙可以达到的位置。小青蛙初始在(0,0)位置,地下迷宫的出口在(0,m-1)(保证这两个位置都是1,并且保证一定有起点到终点可达的路径),小青蛙在迷宫中水平移动一个单位距离需要消耗1点体力值,向上爬一个单位距离需要消耗3个单位的体力值,向下移动不消耗体力值,当小青蛙的体力值等于0的时候还没有到达出原创 2021-03-09 19:45:34 · 141 阅读 · 0 评论 -
红与黑-牛客
有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的(上下左右四个方向)黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 这题用的是bfs,标记开始的结点,把节点放入队列,往前后左右遍历,符合条件的放入队列。 import java.util.*; public class redAndBlack { public static void main(String[] args) { Scanner sc = new S原创 2021-03-09 15:36:30 · 388 阅读 · 0 评论 -
2的个数-牛客
给定一个正整数n,请返回0到n(包括n)的数字中2出现了几次。 测试样例: 10 返回:1 这道题说难也不难,就是计算有多少个2嘛,leetcode上也有同款计算1的个数的题,这种题第一眼会想到for循环,但是这个方法对于小数可以,大数时间复杂度太大了用不了。 历经千难万险,终于找到了方法,分别计算各个位2的个数即可, ...原创 2021-02-02 19:33:24 · 232 阅读 · 0 评论 -
大整数排序-牛客
对N个长度最长可达到1000的数进行排序。 输入描述: 输入第一行为一个整数N,(1<=N<=100)。 接下来的N行每行有一个数,数的长度范围为1<=len<=1000。 每个数都是一个正数,并且保证不包含前缀零。 输出描述: 可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。 链接:https://www.nowcoder.com/questionTerminal/b744af632ac4499aa485d7bb048bb0aa 来原创 2021-01-30 13:20:09 · 134 阅读 · 0 评论 -
整数与IP地址间的转换-牛客
刷题人带着她的题目来了,今天这道题目丰富的运用了字符串中的相关方法以及进制间的转换,十分值得收藏,话不多说上题目! 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数。 举例:一个ip地址为10.0.3.193 每段数字 相对应的二进制数 10 00001010 0 00000000 3 000000原创 2021-01-27 11:30:52 · 383 阅读 · 0 评论 -
输入两个链表,找出它们的第一个公共结点
这是牛客剑指offer 36题,这道题总结了如下四种解法: 解法1是比较容易想到的一种,先分别求出长度,然后长的先走插值步,然后再同时走并判断是否相等,相等的结点即为所求。 解法2是在答案区看到的非常巧妙的方法(我当然是想不出来的????),如果你打眼一瞅看不太明白可以画个图就明白了,十分巧妙的。 解法3利用栈先进后出的原则,先把两个链表都分别入栈,然后相同的结点都往外弹出,直到弹出不同的结点,那个结点的前一个结点即为所求。需要考虑如果弹出的第一个结点就不相等的话直接返回null,还有每次弹出前peek一下原创 2020-12-17 10:29:51 · 267 阅读 · 0 评论 -
数组中数字出现次数超过一半的数字(java)
这是剑指offer上很有意思也很简单的一道题目,想了三种写法,都通过了,在这总结一下: 题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class halfNumJZ28 {原创 2020-12-08 18:02:50 · 145 阅读 · 0 评论