首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
如也201810022128875
获赞
37
粉丝
2
关注
1
看过 TA
16
男
门头沟学院
2021
Java
IP属地:北京
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑如也201810022128875吗?
发布(80)
评论
刷题
如也201810022128875
关注TA,不错过内容更新
关注
2021-09-13 17:47
门头沟学院 Java
题解 | #旋转数组#
题目描述 一个数组A中存有N(N&gt0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1 ……AN-1 )变换为(AN-M …… AN-1 A0 A1 ……AN-M-1 )(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 示例1 输入: 6,2,[1,2,3,4,5,6]返回值: [5,6,1,2,3,4]方法一:模拟 解题思路 首先一个很简单明了的想法,因为题目里说的是整体向右移动 M 个位置,那么我们可以先写好每次只向右移动 1 位的操作,再循环 M 次这个操作...
0
点赞
评论
收藏
分享
2021-09-13 17:43
门头沟学院 Java
题解 | #寻找峰值#
题目描述 山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰。找到索引最大的那个山峰元素并返回其索引。 假设 nums[-1] = nums[n] = -∞。 大体思路 题目中的山峰元素定义是要大于等于其紧邻的左右两边的元素就行了,紧接着又说传入的数组中相邻的两个元素值是不相等,所以很自然的就会想到遍历的方式。可以从左往右遍历,也可以从右往左遍历。 因为题目所要求的是索引最大的山峰元素的峰值的,所以从左往右的遍历方式中,我们不能找到一个峰值就停止,要一直往右找完所有山峰元素;但是在从右往左的遍历方式中,我们只要找到第一个山峰元素...
0
点赞
评论
收藏
分享
2021-09-13 17:41
已编辑
门头沟学院 Java
题解 | #三个数的最大乘积#
题目描述 给定一个长度为 的无序数组 ,包含正数、负数和 0 ,请从中找出 3 个数,使得乘积最大,返回这个乘积。 要求时间复杂度: ,空间复杂度: 。 解题思路 题目所要求的三个数的最大乘积,但要注意数组里的数字有正数有负数,所以结果得分类讨论。 有种情况可能是:三个最大的正数相乘得到的乘积; 还有种情况可能是一个最大的正数和两个最小的负数相乘得到的乘积; 或者还有可能是有零出现的情况,但仔细想想如果有零出现也包含在了前面说的2种情况当中,所以我们只需找出最大的三个正数和最小的两个负数即可。 那怎么找到最大的三个正数和最小的两个负数呢? 一个最简单的方法就是直接对数组来进行一遍从小到...
0
点赞
评论
收藏
分享
2021-09-13 13:30
门头沟学院 Java
题解 | #岛屿数量#
题目描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。 求岛屿数量,本质上是求那些1是相连的。这样我们至少需要先把矩阵中已有的点全部看完,也就是把整个矩阵全部遍历一遍,在遍历的方式中,我们可以选择深度优先遍历或者广度优先遍历。 在遍历的过程中,我们把遍历到的1,改写成其他的数字或字符,以达到占位的目的,防止下次遍历到他的时候重复计算进去岛屿的数量,同时也在遍历的过程中记录下岛屿数量的情况。 方法一:深度优先遍历 解题思路 深度优先就是一条路走到头的一个过程,先...
0
点赞
评论
收藏
分享
2021-09-18 13:14
已编辑
门头沟学院 Java
题解 | #最大正方形#
题目描述 给定一个由'0'和'1'组成的2维矩阵,返回该矩阵中最大的由'1'组成的正方形的面积 首先注意到一点,题目中所要求的一个正方形的面积,长方形是不符合题目要求的。 方法一:暴力枚举 思路分析 很通俗很暴力的一种解法。 整体思路为遍历给定的矩形中所有的正方形,依次求出全是 ‘1’ 的正方形的面积,然后找出最大面积即可。 再具体一点,就是从左到右,从上到下依次遍历矩形中的每个点,然后以遍历到的点为正方形的左上角,求出这个点的最大正方形的面积,以此记录下来,最后求出最大面积即可。 确定了一个点为正方形的右上角之后,在找最大正方形的过程中。这里的做法是先找他的最大边长为多少,再来一步一步扩大...
0
点赞
评论
收藏
分享
2021-07-20 11:34
已编辑
门头沟学院 Java
题解 | #大数乘法#
题目描述 以字符串的形式读入两个数字,编写一个函数计算它们的乘积,以字符串形式返回。 (字符串长度不大于10000,保证字符串仅由'0'~'9'这10种字符组成) 方法一: 模拟 解题思路 用代码模拟2个数相乘的过程即可。整体的流程就是:把 num2 从右往左遍历,每一个数字和 num1 进行相乘, 最后把每次相乘的结果相加就得到答案。 需要注意的是每次相乘的时候,因为有可能数字非常大,超出了整型、长整型的表示范围,所以每次相乘的时候仍然需要用 字符串的形式保存结果,把每次相乘的结果相加,仍然也是 2 个字符串相加。 在写代码的过程中,注意下进位的问题及反转的问题就可以。 这里以 12 *...
0
点赞
评论
收藏
分享
2021-07-20 11:13
已编辑
门头沟学院 Java
题解 | #二叉树的最大深度#
题目描述 求给定二叉树的最大深度, 最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。 方法一: 递归 解题思路 二叉树的问题最常用的方法就是递归,将大规模的问题划成小规模的问题,每个问题的求解方法都是一样的,最后规模小到方便求出答案,再由小规模的问题答案求出大规模的问题答案。 求以根节点为二叉树的最大深度,可以先求出根节点的左子树上的高度是多少,再求出右子树上的高度是多少,这两者的最大高度就是以根节点为二叉树的最大深度。 根节点的左子树,仍然是一棵二叉树,也可以用同样的方法求出它的最大深度。 根节点的右子树,也仍然是一颗二叉树,也可以用同样的方法求出它的最大深度。 以下是以 [1...
0
点赞
评论
收藏
分享
2021-07-20 11:21
已编辑
门头沟学院 Java
题解 | #重建二叉树#
题目描述 给定某二叉树的前序遍历和中序遍历,请重建出该二叉树并返回它的头结点。 方法一: 递归 解题思路 前序遍历的第一个节点就是这颗树的根节点。 在中序遍历中,找到这个根节点,这个根节点的左边元素就是它的左子树上的元素,这个根节点的右边元素就是它的右子树上的元素。 把范围划分好,直到范围上只有一个元素直接生成返回即可。 需要找到根节点在中序遍历上的下标,才能知道它的左子树上有多少个元素,右子树上有多少个元素。为了方便找到下标,可以用 Map 结构来存储 中序遍历数组上 所有元素和其下标 的对应关系。 以下是以 前序遍历为:[8,3,6,7,9] , 中序遍历为:[3,6,8,9,7] 的演...
牛客106846907号:
栈的思路讲的不太理解
0
点赞
评论
收藏
分享
2021-07-18 09:54
已编辑
门头沟学院 Java
题解 | #将升序数组转化为平衡二叉搜索树#
题目描述 给出一个升序排序的数组,将其转化为平衡二叉搜索树(BST) 方法一: 递归 解题思路 先了解一下平衡二叉搜索树的特点。 二叉搜索树,它的中序遍历后的结果就是一个升序的序列; 平衡的,说明任何一个节点的左子树和右子树的高度相差不超过1。 题目中所给的是一个升序排序的数组,所以一个大体流程就是根据一个中序遍历的序列,还原出一个它对应的二叉树。因为是中序遍历的结果,所以元素的左边都是以该元素为根节点的左子树上的元素,元素的右边都是以该元素为根节点的右子树上的元素。 又因为是平衡的,所以先找出序列的中点,以中点的值生成根节点,他的左边右边相差不差过一个元素,即它的左子树和右子树的元素个数...
0
点赞
评论
收藏
分享
2021-07-09 18:06
已编辑
门头沟学院 Java
怎么提高学习兴趣
想写博客很久了,可一直都没有做实际行动。 有人问我怎么提高学习兴趣,今早上想了许久这个问题。 有一种调入了黑洞的感觉, 本来不知道说什么,从一点开始,慢慢地就引起了后面的看法... 总结后的最主要的一点: 我认为 学习过程中,反馈是很重要的。 PS: 这是我第一次写,但就这么点写了1个小时... 内容主要部分 学习兴趣从何而来 关于学习兴趣 学习兴趣从何而来 先说说学习兴趣从何而来。 身边有很多人喜欢玩游戏,就拿游戏来举例吧~ 对我而言,以前最开始玩的最凶的是植物大战僵尸,4399小游戏和插卡的那种游戏机,,,这类的,那种大型游戏也...
0
点赞
评论
收藏
分享
2021-07-09 18:05
门头沟学院 Java
Fibonacci 取余问题
前言 记蓝桥入门训练第一题… 很简单的还折腾了2、3天。最后是找的学长来帮忙。感谢! 做题过程总体分为3个阶段。 先上题目: 问题描述: Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10007的余数。 说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先...
0
点赞
评论
收藏
分享
2021-07-09 18:05
已编辑
门头沟学院 Java
数组排序之后相邻数的最大差值
前言 : 想写些东西记录自己所学的收获。 先上题目 : 思路: 比较器 最简单的按排序之后再逐个遍历找出最大差值,但这显然不符合题目要求。 不过这个思路可以当成比较器来用,来检测之后写的代码是否是否要求。 public static int comparator(int[] nums) { if(nums == null || nums.length < 2) { return 0; } Arrays.sort(nums); int gap = Integer.MIN_VALUE; ...
0
点赞
评论
收藏
分享
2021-07-09 18:05
门头沟学院 Java
集合和映射
前言 这几天看代码碰到了HashMap,HashSet,TreeMap,TreeSet等等这样的结构,虽然早有耳闻,但一直不是很清楚怎么用的,是个什么意思。这篇文章就想写写这 集合(Set) 和 映射(Map) 是个什么东西。 其实集合 和 映射 都算是一种容器,一种数据结构,可以来存放数据的容器。 集合(Set) 特点是 可以去重(一般来说是这样, 但还有他的对立面: 多重集合,就是允许放入重复的元素,但多重集合很少用,目前还没有碰到过,了解这么一个概念就好。),即不允许放入重复的(相等的)元素。 相关应用场景: 店里客户统计(相同客户只统计...
0
点赞
评论
收藏
分享
2021-07-09 18:04
已编辑
门头沟学院 Java
有关暴力递归和动态规划的初次尝试
前言: 之前只是听说过暴力递归和动态规划这些个名词。写这篇文章的目的只是想总结总结自己的认识。 暴力递归 其实也不用叫什么暴力递归,感觉加上暴力这个词就有一种不正经的感觉… 就是一个简单的递归尝试方法。 出现了一个问题,不知道是怎么解决的,但我们知道可以怎么一步一步进行尝试,在这一步步的尝试过程就可以把问题解决了。 相信大家第一次接触递归的方法都是从 斐波那契的那些兔子开始的~ 最具典型性的例子应该就是 四色定理。 一个人为的证明很难,但被电子计算机(注意是电子哦~不是机械)一次次的尝试,花了1200个小时证明出来的定理。 动态规划 其本质就是一种 空间换时间 的操作。 是从递归的写...
0
点赞
评论
收藏
分享
2021-07-09 18:04
已编辑
门头沟学院 Java
有关字典树的简单介绍
框架: 简单介绍 相关实现 更多结构 简单介绍 字典树: 也叫前缀树,trie。 就是一种树结构,但与一般间的树的结构还是有点不同。 这种数据结构是处理 字符串问题 的一种特定结构。其性能只与 要处理的字符串的长度有关。 以下这张图片只是简单的描绘 这种数据结构在人看来是长什么样子。 (里面的p,e在代码里有介绍) 相关实现 先来看看 对于这种结构的一些要求 思路: 在代码注释里 上代码: // 主要就是这个trie树的 节点结构 好用,一开始可能会理解不太清 // 但是这个节点 画出来的话 不是刚好就是一个节点。...
0
点赞
评论
收藏
分享
1
2
3
4
5
6
关注他的用户也关注了:
牛客网
牛客企业服务