首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
godhands
获赞
261
粉丝
11
关注
9
看过 TA
43
哈尔滨理工大学
2024
安全工程师
IP属地:黑龙江
godhands
私信
关注
拉黑
举报
举报
确定要拉黑godhands吗?
发布(81)
评论
刷题
godhands
关注TA,不错过内容更新
关注
2022-02-20 15:36
已编辑
哈尔滨理工大学 安全工程师
题解 | #丢棋子问题-干货慢慢#
描述 题目描述 其实这个题目是一个很经典的题目, 就是我们有NNN层楼, 我们有KKK个物品, 然后我们要计算求解的就是我们在最坏的情况下得到的最小操作数 这个我们第一个最简单的想法可能就是一个个的比较去排除, 我们从第一层楼开始我们就是一直向上摔, 看看可不可以摔碎, 如果碎了, 那么正好就是这么一层楼, 如果没碎我们继续比较 但是这样的话我们就很原始很暴力很慢, 这时候凭借着大家做题的习惯肯定是要去进行一个二分, 我们每次取一半来测试, 如果鸡蛋的数量是无限的, 这样当然很好, 但是我们的鸡蛋的数量是有限个的, 那么我们肯定会第一个想法就是, 那我们N−1N - 1N−1个鸡蛋二分, 最后...
机试题目题解
0
点赞
评论
收藏
分享
2022-02-11 20:29
哈尔滨理工大学 安全工程师
题解 | #按之字形顺序打印二叉树#
描述 题目描述 给定了我们一个二叉树,然后让我们进行这样的一个操作,按照奇数层从左到右,偶数层从右向左,存入我们的数组,然后输出 样例解释 样例输入: {1,2,3,#,#,4,5} 所以我们的样例输出是 [[1],[3,2],[4,5]] 解法 解法一: 实现思路 其实这个我们很容易可以想到,我们按照根节点->左子树->右子树的这个顺序遍历的话,我们可以保证我们的每一层里面的所有节点以从左到右的顺序排列出来,然后我们直接dfsdfsdfs遍历一次就可以了, 然后我们如果从认为根节点那层是000的话, 那么我们就是最后奇数层反转 代码实现 class Solution { ...
机试题目题解
0
点赞
评论
收藏
分享
2022-02-13 13:45
已编辑
哈尔滨理工大学 安全工程师
题解 | #人民币转换#
描述 题目描述 就是给我们一个正常的阿拉伯数字, 让我们转换为我们中文的大写数字 这道题目, 本质上来讲就是一个大模拟 样例解释 给定我们的样例输入: 151121.15 所以我们的样例输出就是 人民币拾伍万壹仟壹佰贰拾壹元壹角伍分 题解 解法一: C++代码 实现思路 首先我们小数点后面的位置好判断, 我们可以直接用三个判断语句进行操作 然后难点在于我们的小数点前面的一个判断, 我们要对每一个位置进行一个判断, 这个位置如果没有对应的单位, 就如我上图所讲, 那么我们就是要跟下一个有单位的组成一个, 然后转换为中文输出, 然后我们接下来有单位的正常输出就可以了, 有零的情况需要特殊判断...
机试题目题解
0
点赞
评论
收藏
分享
2022-02-19 17:01
已编辑
哈尔滨理工大学 安全工程师
题解 | #跳台阶#
描述 题目描述 首先给我们一个可爱的小青蛙, 一次可以上一级台阶, 一次可以上两级台阶 然后给了我们要到的台阶的数, 问我们最后可以有多少种跳法 样例解释 样例输入 2 这个很是显而易见, 可以跳两次111个台阶, 也是可以一次跳两个台阶 所以我们的样例输出是 2 题解 解法一: 裸的动态规划 实现思路 我们可以发现这么一个事情, 就是在当前楼梯, 我们可以发现, 我们是可以从前一个楼梯或者前两个楼梯转移过来 就如图所示, 我们第三层楼梯, 可以从我们的第二层楼梯上去, 同时也是可以从我们的第一层楼梯上去 所以我们可以很容易的得到我们的状态转移方程 当i>=3i >= 3i&...
机试题目题解
0
点赞
评论
收藏
分享
2022-02-10 13:55
哈尔滨理工大学 安全工程师
题解 | #二叉搜索树与双向链表#
描述 题目描述 给我们一个二叉搜索树,然后我们转换为有序的链表结构 首先明确这么几个概念: 二叉搜索树: 左子树上的所有节点的值均小于它的根节点的值, 右子树上所有节点的值均大于他的根节点的值 中序遍历: 首先遍历左子树, 再遍历根节点, 最后遍历右节点 这里我们中序遍历的顺序恰好就是我们排序后的链表中的节点顺序 这里讲述一下中序遍历的顺序 题解 解法一: 直接暴力存储 实现思路 既然我们二叉搜索树的中序遍历恰好就是我们最后的答案, 那么我们可以直接暴力把我们的结果都先放入一个数组中, 然后我们直接对这个数组里面的节点重新确立顺序就完成了 代码实现 class Solution { ...
机试题目题解
0
点赞
评论
收藏
分享
2022-02-09 20:55
哈尔滨理工大学 安全工程师
题解 | #最长的括号子串#
描述 题目描述 给我们一个字符串里面只会包含()()()这两种字符, 然后问我们可以构成的最大的正确子串, 就是严格满足左右括号相同 样例解释 样例输入: "(()" 我们可以很容易发现, 只有()()()这个是满足的, 长度为222 所以我们的样例输出就是 2 题解 解法一: 贪心 解题思路 首先我们可以很容易知道, 我们的最终的答案他一定是满足这么一个条件的 左括号数量与右括号数量是相同的 然后我们还可以知道, 从前向后看的话, 我们可以确定必须严格保证时刻左括号的数量时刻大于等于右括号数量 如果不满足, 就把左右指针同时清零 这样会有这么一组情况(()(()(()这样我们会发现,...
机试题目题解
0
点赞
评论
收藏
分享
2022-03-14 16:43
已编辑
哈尔滨理工大学 安全工程师
题解 | #寻找第K大-库函数-手写快排-手写快速选择算法#
描述 题目描述 这个题目很简单, 就是一个简单的在一个数组中寻找第kkk大的元素 解法 解法一: STL库函数 实现思路 直接调用我们的STL函数, 求取第kkk大的元素 代码实现 class Solution { public: int findKth(vector<int> a, int n, int K) { nth_element(a.begin(), a.begin() + K - 1, a.end(), greater<int>()); // 求取第k大的函数 return a[K - 1]; ...
机试题目题解
0
点赞
评论
收藏
分享
2022-02-07 23:20
哈尔滨理工大学 安全工程师
题解 | #矩阵元素查找#
描述 题目描述 给了我们一个二维数组, 和他的行和列, 给定我们一个值, 让我们在这个矩阵中找到等于这个值的横纵坐标, 并作为一个vectorvectorvector返回 样例解释 样例输入 [[1,2,3],[4,5,6]],2,3,6 如图所示 所以我们的样例输出就是 [1,2] 题解 解法一: 实现思路 我们可以直接暴力遍历我们的这个矩阵, 然后我们直接找到位置的时候返回 代码实现 class Solution { public: vector<int> findElement(vector<vector<int> > mat, i...
机试题目题解
0
点赞
评论
收藏
分享
2022-02-17 22:36
已编辑
哈尔滨理工大学 安全工程师
题解 | #删除链表中重复的结点#
描述 题目描述 首先给我们一个链表,是已经排好顺序的链表,我们要做的事情就是把重复的元素全部删除掉就可以了,最后返回我们删除过后的链表 样例解释 首先给定我们的输入 {1,1,1,5} 这里我们可以得到这么一个链表,如图所示 然后我们发现我们权值为111的点重复出现了333次,然后我们删掉,最后得到的一个链表就是 最后我们的输出就是 {5} 然后一般对于这种链表的解题思想无非就是分为两种,一种是递归,一种是迭代 题解 解法一:迭代法 解题思路: 我们可以一开始先定义一个哑节点,然后我们在进行操作的时候,我们可以每次从我们的哑节点的后面开始找,最多会有多少个一样的,然后我们把这些一样的节...
机试题目题解
0
点赞
评论
收藏
分享
2022-01-29 18:21
哈尔滨理工大学 安全工程师
题解 | #字符流中第一个不重复的字符#
描述 题目描述 这个题乍一看很复杂,其实逐步分解就可以 首先Insert这个函数是用于每次新增一个字符的,然后FirstAppearingOnce这个函数是直接输出每次第一个只出现一次的字符是什么的 样例解释 首先给定我们的样例输入 "google" 这个是怎么判断呢? 所以最后的输出就是 "ggg#ll" 题解 解法一:队列 实现思路: 首先我们可以用一个队列模拟我们每次入队的字符,然后同时我们每次记录我们这个字符出现的次数,然后查找的时候就是看我们队头是不是只出现了一次,如果是的话,我们可以直接输出,否则弹出看下一个,然后如果都不是的话就是输出#\## 代码实现: clas...
机试题目题解
0
点赞
评论
收藏
分享
2022-02-18 22:52
已编辑
哈尔滨理工大学 安全工程师
题解 | #和为S的连续正数序列#
描述 题目描述 首先给定我们一个整数,然后问我们所有的连续序列的和等于这个整数,我们要把这些连续的序列输出出来 样例解释 样例输入 9 我们就是要找到,所有序列和为999的序列,序列长度至少为2,所以样例输出为 [[2,3,4],[4,5]] 题解 解法一:数学公式 实现思路 首先我们可以很轻松的知道,我们一个连续序列的和其实就是 (首项 + 末项) * 项数 / 2 那么我们可以推出如下等式 (l+r)∗(r−l+1)2==n\frac{(l + r) * (r - l + 1)}{2} == n2(l+r)∗(r−l+1)==n 接下来移项可得 (l+r)∗(r−l+1)==2∗...
机试题目题解
0
点赞
评论
收藏
分享
2022-01-18 22:27
哈尔滨理工大学 安全工程师
题解 | #翻转单词序列#
描述 题目描述 给定一个字符串以空格分隔,以每一个单词为一个单位,反转整个字符串 样例解释 样例输入: "nowcoder. a am I" 然后我们很容易得到,我们是这么四个单词 nowcoder. a am I 然后我们反转得到我们的样例输出 "I am a nowcoder." 解法 解法一:C++的字符流 解题思路: 我们可以直接使用C++的库函数,将字符以空格分隔,然后颠倒输出 然后我们这里使用了stringstream 由于stringstream构造函数会特别消耗内存,似乎不打算主动释放内存(或许是为了提高效率),但如果你要在程序中用同一个流,反复读写大量的数据,将...
机试题目题解
0
点赞
评论
收藏
分享
2022-01-17 23:07
哈尔滨理工大学 安全工程师
题解 | #记负均正#
描述 题目描述 首先给我们一个数字nnn,代表我们接下来有nnn个整数,然后我们对这nnn个整数进行统记,正数求和最后求取平均值,负数计算个数最后输出 样例描述 首先给定样例输入 5 1 2 3 4 5 10 1 2 3 4 5 6 7 8 9 0 第一组数据我们有555个数字,然后我们统计,没有负数,然后平均值是3.03.03.0保留了一位小数 第二组数据我们有101010个数字,然后我们统计,没有复数,然后平均值是5.05.05.0保留了一位小数 所以我们的样例输出是 0 3.0 0 5.0 图解代码 题解 解法一:C++ 解题思路: 首先我们多组输入,然后我们在输入的过程...
机试题目题解
0
点赞
评论
收藏
分享
2022-03-10 00:31
已编辑
哈尔滨理工大学 安全工程师
题解 | #螺旋矩阵(二)#
描述 题目描述 给定我们一个nnn,然后让我们输出我们一个n∗nn * nn∗n的一个矩阵,然后顺序是按照顺时针方向排列 样例解释 样例输入 3 样例输出是 [[1,2,3],[8,9,4],[7,6,5]] 题解 解法一:直接模拟 解题思路 这个可以看一下,我上面的样例解释,就是这个题目的思路 我们可以直接按照题目种的要求,直接模拟即可,如我上图的箭头的顺序 代码实现 class Solution { public: vector<vector<int> > Matrix(int n) { vector<vector<int...
机试题目题解
0
点赞
评论
收藏
分享
2022-02-20 18:15
已编辑
哈尔滨理工大学 安全工程师
题解 | #长度最小的连续子数组-(二分 + 前缀和)-(双指针 - 窗口)#
描述 题目描述 给定我们一个数组,然后一个总和,让我们找到一个区间,满足区间的和大于等于这个总和,输出区间的长度,如果没有的话,我们可以直接输出000 样例解释 样例输入 [1,2,4,4,1,1,1],9 这个满足总和相加大于等于999的最短区间,我们可以选择2,4,4也可以选择4,4,12,4,4也可以选择4,4,12,4,4也可以选择4,4,1,他们长度一样所以最后输出 3 题解 解法一:双指针维护窗口 实现思路 首先我们有两个指针,分别指向我们这个窗口的左右边界,我们的右指针每次向外扩展我们的这个窗口,然后每次,我们判断如果左指针可以收缩,我们一直让左指针收缩,这样我们最后得到的就...
机试题目题解
0
点赞
评论
收藏
分享
1
2
3
4
5
6
关注他的用户也关注了:
牛客网
牛客企业服务