自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 华为 5月20日 笔试 试题及详细解答

华为,520,但我不配拥有offer昨晚做了华为笔试,一道题都没做出来,我不配拥有offer。下面的代码都是我下来之后写的,注释也很详细,希望能给大家带来一些帮助。这些代码都是能够运行的,并且我想到的情况都能通过,但是由于无法提交验证,不排除仍有错漏的情形。如果你发现本文中有漏洞,不妨在评论区指出来吧。第一题 [编程|100分] 链表分组题目描述Node有2个属性{id:Int, name:string},输入一个Node链表collection,及分组标识splitter:string,将N

2020-05-21 16:12:56 2180 4

原创 [编程题]小军砌墙 难得离谱 讲的明白 位运算+动态规划

[编程题]小军砌墙 难得离谱 讲的明白 位运算+动态规划这套题真的难的离谱,2小时做完的都是些什么神仙?截止5月11日,还没有题解,就让我来抛砖引玉吧。首先咱们最容易想到的是类似dfs那种递归算法,这个我也贴在后面了,但是超时了。我重点来讲解下面的 位运算+动态规划 算法。首先我们来考虑铺一行的可能性,我们定义一个函数f(pos int)来从pos位置开始铺砖,那么:1.我们可以铺一块2格的红砖,然后调用f(pos+2)2.我们可以铺一块3格的绿砖,然后调用f(pos+3)然后在递归搜索的过

2020-05-11 19:27:16 652 2

原创 [编程题]vivo智能手机产能 只需两行 数学解法

[编程题]vivo智能手机产能数学解法,只需两行。n天可以拆分为1+2+3+…+k+r,r表示余项产出的手机量为12+22+32+…+k2+(k+1)r。class Solution {public: int solution(int n) { // write code here int res = 0, i = 1; while...

2020-04-06 12:56:41 1670

原创 543. 二叉树的直径 Golang 深度优先搜索 dfs 每日一题

543. 二叉树的直径给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。...

2020-03-10 11:14:58 465

原创 C++ 164.最大间距 深入浅出桶排序

164.最大间距给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例 1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例 2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。说明:你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。请尝试在线性时间复杂度和空间复杂度的条件下

2020-11-27 16:47:05 240

原创 输入一串数字,#结束

#include <iostream>#include <vector>using namespace std;int main(){ vector<int> nums; int in; while(cin>>in){ nums.push_back(in); if (cin.get()=='#'){ break; } } for (int

2020-09-05 15:40:57 915

原创 9月1日 拼多多 笔试

9月1日 拼多多 笔试第一题一个 n 阶矩阵,用米字线分割为如下8个区域。矩阵元素需要满足:各区域内的元素都等于区域的编号被分割线穿过的元素值都等于0打印这个矩阵。示例用例:输入:4输出:0 2 1 03 0 0 84 0 0 70 5 6 0输入:5输出:0 2 0 1 03 0 0 0 80 0 0 0 04 0 0 0 70 5 0 6 0我的代码package mainimport "fmt"func main() { var n

2020-09-01 22:24:03 401

原创 8月28日 阿里笔试 研发工程师C/C++

8月28日 阿里笔试第1题如果对于一个 01 字符串,每次可以进行如下操作中的一种。只能交换任意两个元素把一个0变成1或把一个1变成0翻转整个字符串请问从A串变成B串最少需要多少步?我们先分析一波。我们要用三种操作将字符串 origin 变成 target。尽管不一定最优,假设我们得到了一种可行方案。假设这个方案里的翻转次数 r>1,那么我们一定可以消除其中的两次翻转操作达到一样的效果。现在我们的方案里只有0次或1次翻转操作。假设现在我们的方案里仍然有1次翻转操作,那么翻转

2020-08-29 12:53:02 434

原创 312. 戳气球 每日一题 Golang 动态规划

312. 戳气球 每日一题 Golang 动态规划最容易的想到的是递归求解,但是必然会造成大量的重复计算。那能不能利用动态规划拿空间换时间呢?由于扎破一个气球后数组就发生了变化,不满足动态规划的无后效性。到这里我陷入了困境。看了题解的思路,真的太巧妙了,技巧性太强了。题解的关键在于 倒过来考虑逐个戳破的气球。我们在两边各加一个数值为1的气球。我们构造dp矩阵,行列分别表示气球序列的起点和终点,dp[i][j]表示戳破(i,j)(注意为开区间)中的气球的最多得分。13158

2020-07-19 23:04:13 210

原创 785. 判断二分图 每日一题 Go

785. 判断二分图参考官方题解的染色法。paint函数对idx的邻接点染色并递归。对一个点使用paint函数会将其所在的整个连通图染色。考虑到题中的图可能不是单连通图,因此需要对每个未染色的点 染色 并调用paint函数。package mainimport "fmt"const ( plain=iota red black)func paint(idx int, graph [][]int, color []int) bool { for _,v:=range graph

2020-07-16 11:02:54 173

原创 腾讯后端实习生 凉面经 止步二面

腾讯一面前两天腾讯面试官电话联系我约定了面试时间,没说面试方式,也没发在线面试或者视频会议链接,我以为会是电话面试,那就没法笔试,应该主要考察计算机网络,操作系统,数据库之类的知识,我这有想。结果面试官打个电话过来给我一个腾讯视频房间号,让我上号。然后上来就是四道算法,我人傻了。这次面试给我的感受是非常开放,那第2道题为例。面试官的意思是尽可能周密地把你能想到的情形都写出来。大数相乘所谓大数就是可能超出数值类型范围的数字,一般来说这种数字要用字符串来存储。字符串转数字自然数|a|

2020-06-29 21:21:50 617

原创 1028. 从先序遍历还原二叉树 正则表达式

1028. 从先序遍历还原二叉树一般来说仅 中序遍历 是无法还原二叉树的,但是这个字符串里带有深度信息。所以可以先用正则表达式把值及其深度提取出来,然后重建二叉树。例如当前节点深度为i,那么下下个深度为i+1的节点就是右字数的首节点。/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } *

2020-06-18 11:17:07 285

原创 [编程题]击败魔物 小红书 二分查找

我们把问题分解成两个子问题:1.已知 必杀技伤害X 验证能否获胜2.二分查找能够获胜的最小伤害X考虑二分查找的上下边界:平A即可取胜,此时为X的下界0技能秒杀任意怪,此时为X的上界为怪物的最大血量,伤害更高没有意义package main import ( "fmt" "sort")//求和func sum(arr []int) (ans int) { for _,v:=range arr{ ans+=v } return

2020-06-14 15:28:34 568

原创 迷宫游戏 小红书 golang bfs

迷宫游戏 小红书 golang bfs看到大家的程序都很繁琐我就放心了。基本思路就是bfs,将起点放进待处理的队列,每次出队一个元素,将其相邻的可行元素入队。可以取消 打印生长过程 的注释,当图生长碰到终点,就输出长度,如果知道结束都没有碰到终点则输出-1.package mainimport ( "fmt")func main() { var n int var s [2]int var in string //标记矩阵 var mapp [][]int fmt.Scan(

2020-06-09 15:58:15 335

原创 [编程题]笔记草稿 小红书 正则表达式

正则表达式需要注意括号中的字符要排除括号本身才能正确地按层次关系匹配。举个例子,针对1(23(4)5)67,如果使用\\(.*?\\)来匹配首先匹配到的是(23(4)。类似地,为了防止<消除<自身,也需要排除<。package main import ( "fmt" "regexp") func main() { in:="" fmt.Scan(&in) reg,_:=regexp.Compile("\\([^\\(\\)]

2020-06-04 17:57:16 421

原创 287. 寻找重复数 龟兔赛跑

寻找重复数二分法假设重复值大于m,那么小于等于m的值的数量一定≥\geq≥m。func findDuplicate(nums []int) (ans int) { n:= len(nums) min,max:=1,n for min<max{ m:=(min+max)/2 cnt:=0 for _,v:=range nums{ if v<=m{ cnt++ } } if cnt>m{ max=m }else{ min.

2020-05-27 12:42:26 280

原创 974. 和可被 K 整除的子数组 golang

和可被 K 整除的子数组这种涉及到字串之和的应该联想到前缀和。如果存在 和的余数 相同的两个字串,那么将长串减去短串得到的串可被K整除。因此假如 具有相同余数r的子串有n个,那么用长减短可以得到 :n−1+n−2+...+2+1=n(n−1)/2n-1 + n-2 + ... + 2 + 1=n(n-1)/2n−1+n−2+...+2+1=n(n−1)/2个可被K整除的字串请注意 和的余数为0 的子串有空串。一边统计一边算func subarraysDivByK2(A []int, K i.

2020-05-27 10:53:22 349

原创 [编程题]木板接水 双指针

[编程题]木板接水这道题与leetcode上的接雨水非常类似,双指针解法尤其适合这道题。package mainimport ( "fmt")func getVolume(board []int) (ans int) { //左边的最高挡板的位置,右边的最高挡板的位置 l,r:=0, len(board)-1 //左边的最高挡板的高度,右边的最高挡板的高度 lm,rm:=board[l],board[r] for l<r{ //较短的挡板决定水位 if board[l

2020-05-25 21:55:23 367

原创 4. 寻找两个正序数组的中位数 每日一题 golang

4. 寻找两个正序数组的中位数巩固一下。解法一:找第k大的数在两个数组里第k/2个元素,并取较小的截去前面的一段,更新k,然后递归。知道k=1时取两个数组中较小的值即可。func min(a,b int) int { if a<b{ return a }else { return b }}func findMedianSortedArrays(nums1 []int, nums2 []int) float64 { k:= len(nums1)+ len(nums2)

2020-05-24 21:33:14 399

原创 76. 最小覆盖子串 每日一题 Golang

整一道leetcode,找找自信。首先简历一个表来记录t里出现的字符及其数量。这个表表示所需的字符及其数量。我们在s上使用滑动窗口,上面的表就是初始状态,如果在滑动窗口的过程中表中每个字符所需的数字均小于等于0,则覆盖子串。package mainimport "fmt"func contain(m map[int32]int) bool { for _,v:=range m{ if v>0{ return false } } return true}func

2020-05-23 10:42:26 404

原创 多多的魔术盒子 Python Golang 二进制

多多的魔术盒子这道题最容易想到的就是不停从中值减少,我也是这样的解法。@牛客625413878号的代码非常简洁。数字转二进制,位数就是结果,太秀了。已经提醒本人写题解,等他写了我就删除这部分。n = int(input()) for i in range(n): x = int(input()) print(len(bin(x))-2)这是我的代码。package main import "fmt" func main() { var t,n int

2020-05-19 17:21:11 1360

原创 [编程题]骰子期望 Golang

[编程题]骰子期望这套卷子做下来感觉很难受,每道题都有思路,但是只有第一道题完美通过,做题速度堪忧。本想把5道题都做了整一套题解,但是明天有华为笔试,我得去刷华为面经了,先写两道吧,剩下的后面再更新。还是结合例子来讲。4颗????,最大值:25 9 10 43。因为每颗骰子的结果都是独立的,同时每一面出现的可能都是相同的,因此可以用可能性相除得概率。总的可能性为 25×9×10×4325\times9\times10\times4325×9×10×43种。最大值为k(例如k=5)的可能性怎么

2020-05-19 16:56:29 1033

原创 面试题49. 丑数 Golang 二分插入+动态规划

面试题49. 丑数说实话,那个三指针技巧性太高,如果不是碰到过,大部分人应该是想不到的。介绍一下我的老实巴交解法,性能一般般,但是胜在简单易懂。首先在动态数组里插入一个1,然后循环取元素a,将2a,3a,5a插入动态数组。这里使用的是自定义的二分插入,有相同的元素的时候不插入直接返回。第n个元素就是所求的结果。func insert(nums[]int,n int) []int { l:=0 r:= len(nums) if n<=nums[l]{ nums=append([]i

2020-05-19 00:14:23 346

原创 面试题45. 把数组排成最小的数 Golang

我们这一届也即将面临着找工作的难题了,为了提升编程功力,我经常上leetcode和牛客网刷题。因为牛客网更偏向实战,所以我更喜欢在牛客上刷。可是最近随着刷的题越来越新,遇到了很多没有题解的题目。这种题如果琢磨出来了写一篇题解收赞挺有成就感的,但是做不出来的时候又没有题解可以参考,这个时候就非常痛苦。这种状态持续时间长了让我自我怀疑,变得不自信,对刷题产生畏惧。认真反省之后发现这就是近几天学习状态越来越差的罪魁祸首。对于大多数普通人来讲,秋招是一场持久战,保持一个健康的心态至关重要。因此学习中的正反馈真的

2020-05-18 23:00:32 242

原创 放置货物

放置货物结合????来讲,货物的大小为c=3,d=6。考虑货物左上角的坐标x,y,那么对于每一个障碍物,x,y不能落在左上的c=3,d=6的矩形范围。对每个障碍物对应的矩形做标记,如果结束后存在未被标记的点则存在可行的x,y来放下货物。package main import "fmt" func generateFlagMatrix(n,m int) (matrix [][]bool) { for i:=0;i<n;i++{ line:=make([]bool,

2020-05-15 16:00:54 346

原创 手把手教你修改毕业论文中页眉页脚页码

这一页要单独删去页眉。首先点开页眉页脚取消勾选链接到前一页,这样编辑当前页就不会影响前面的页面的页眉。取消勾选后,删去即可。页眉交替显示 当前章节 和 xx大学 。比如开头的一页是章节,勾选设置,删除当前页眉,然后点击文档部件-域。依次选中 链接和引用 StyleRef 章,确定。然后将下一页的页眉编辑为 xx大学 即可。页码设置绪论之前罗马数字,绪论起为阿拉...

2020-05-06 19:37:57 2675

原创 1095. 山脉数组中查找目标值 Golang 双百 二分查找

1095. 山脉数组中查找目标值山脉数组是先增后减数组,利用二分法找到边界。然后分别在两个单调数组里二分查找。解题思路一看就懂,但是写代码是真的折磨,考虑边界条件头都裂了。package mainimport "fmt"type MountainArray struct { arr []int}func (this *MountainArray) get(index int...

2020-04-29 10:27:57 239

原创 面试题56 - I. 数组中数字出现的次数 Golang 分组异或

面试题56 - I. 数组中数字出现的次数两个相同的数字异或得0,一个数与0异或得自身。因此这一串数字异或下来就得到两个数字x,y的异或z。那么z里为1的一位就意味着x,y在这一位一个为0一个为1。可以任取z里为1的一位与其他数字位与,可以将数组分为在这一位为0的一组和在这一位为1的另一组。然后分别对两组取异或就取出了x,y。func singleNumbers(nums []int) [...

2020-04-28 14:53:12 372

原创 编程题 多用例 循环输入 C++/Java/Python/Golang

编程题是怎么回事呢?小编相信大家都很熟悉,但是循环输入是怎么回事呢?下面就让小编带大家一起了解吧。循环输入,其实就是不确定的多行输入,大家可能会感到很惊讶,编程题怎么会有循环输入?但事实就是这样,小编也感到非常惊讶。那么这就是关于循环输入的事情了,大家有什么想法呢?欢迎在评论区告诉小编一起讨论哦。举个例子,比如下面这道题:输入描述:第1行开始,每行输入两个整数a和b。输出描述:每...

2020-04-27 09:16:06 772

原创 腾讯 4月26日笔试 第5题 第k层的祖先 Golang

完全树的特征:节点k的父亲为k/2,左子为2k,右子2k+1。package mainimport "fmt"func main() { var n,val,layer int fmt.Scan(&n) for i:=0;i<n;i++{ fmt.Scan(&val,&layer) i:=1 com:=1 for com<=val...

2020-04-26 22:38:37 353

原创 腾讯 4月26日笔试 第4题 两个栈模拟队列 C++

#include <iostream>#include <stack>using namespace std;int main(){ stack<int> a,b; int n; cin >> n; string op; int num; while (n--) { cin &...

2020-04-26 22:31:49 287

原创 腾讯 4月26日笔试 第1题 模拟队列 Golang

package mainimport "fmt"func main() { var n,m,tp int var op string fmt.Scan(&n) for i:=0;i<n;i++{ queue:=[]int{} fmt.Scan(&m) for j:=0;j<m;j++{ fmt.Scan(&op) swit...

2020-04-26 22:29:27 452

原创 验证IP地址 Golang

集合划分问题 Golang 动态规划 01背包最长等差数列问题 Golang 暴力法字母组合 Golang验证IP地址 Golang正则表达式解比我这个更好。package main import ( "fmt" "strconv" "strings")func main() { s:="" fmt.Scan(&s) /...

2020-04-25 18:14:43 768

原创 字母组合 Golang

集合划分问题 Golang 动态规划 01背包最长等差数列问题 Golang 暴力法字母组合 Golang验证IP地址 Golangpackage main import ( "fmt") func main(){ num:="" fmt.Scan(&num) chars:=map[string]string{"0":"","1":"","...

2020-04-25 18:13:47 518

原创 最长等差数列问题 Golang 暴力法

集合划分问题 Golang 动态规划 01背包最长等差数列问题 Golang 暴力法字母组合 Golang验证IP地址 Golang这个代码可能不简洁,但是绝对简单易懂。首先将序列nums排个序,然后取第一个first元素f,再取第二个second元素s,算出差d,那么我们的下一个期望值就是nums[s]+d,遍历剩余的数组,碰到了期望就计数+1,期望值+d,继续遍历。目前只想到了这样...

2020-04-25 18:12:46 320

原创 集合划分问题 Golang 动态规划 01背包

集合划分问题 Golang 动态规划 01背包最长等差数列问题 Golang 暴力法字母组合 Golang验证IP地址 Golang01背包问题,用一个set记录可能凑出来的值。超过所有数字之和的一半可以不用记录,因为必定有一个小于一半的互补的情况,可以得出一组最接近总和一半的值maxmaxmax,总和sum−maxsum-maxsum−max得较大的另一组的和,大的一组减小的一组得sum...

2020-04-25 18:12:28 293

原创 质数之和 动态规划 Golang

给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000. 如,输入为10,程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))package mainimport "fmt"func main() { var n int fmt.Scan(&n) notPrime:=make([]bool,n) for ...

2020-04-24 19:51:00 192

原创 [问答题]腾讯大楼扔玻璃珠 Golang 动态规划

[问答题]腾讯大楼扔玻璃珠腾讯大厦有39层,你手里有两颗一抹一眼的玻璃珠。当你拿着玻璃珠在某一层往下扔的时候,一定会有两个结果,玻璃珠碎了或者没碎。大厦有个临界楼层。低于它的楼层,往下扔玻璃珠,玻璃珠不会碎,等于或高于它的楼层,扔下玻璃珠,玻璃珠一定会碎。玻璃珠碎了就不能再扔。现在让你设计一种方式,使得在该方式下,最坏的情况扔的次数比其他任何方式最坏的次数都少。也就是设计一种最有效的方式。二分...

2020-04-24 19:28:02 424

原创 [编程题]质因数统计 快手20 动态规划 Golang

package main import "fmt" func main() { var n int fmt.Scan(&n) cnt := make([]int, n+1) for i := 2; i <= n; i++ { cnt[i]++ } for i := 2; i*i <= n; i++ {...

2020-04-23 19:19:19 226

原创 [编程题]最长公共连续子串 美团2017 JAVA 动态规划

美团2017 JAVA[编程题]大富翁游戏[编程题]拼凑钱币[编程题]最大矩形面积[编程题]最长公共连续子串这道题其实我以前做过,但是这次碰到却一直想不起来,非常难受,交卷后看评论里的动态规划就立马明白了,下面是代码。strem特性是真的好用,一旦拥有,爱不释手。import java.util.Arrays;import java.util.Scanner;public cl...

2020-04-19 17:41:07 239

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除