自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树最大深度

二叉树最大深度

2022-12-23 14:45:28 129 1

原创 一不小心,到了技术总监面。。。

文章目录说在前面字符串 - 最长公共子序列案例1143.最长公共子序列【中等】一、动态数组定义二、初始化三、状态转移方程四、优化你好!我是Johngo!动态规划作为面试的重镇之地,都有。。不同路径 爬楼梯!打家劫舍 卖股票!单词拆分 接雨水!其实是这样,突然想到今年夏天,大学同宿舍在抖音的总监中,让他用动态规划的思路解决「最长公共子序列」的一道题目。不过作为一个游戏通关者而言,确实不太难!因为他心目中的总监面应该是很难的!但是,万万没有想到,这仅仅是开始…总监面今天就到这里了,下期分享他后面

2021-12-16 16:46:48 554 4

原创 上周入职快手 ..聊聊面试核心点、、、

大家好,我是Johngo!同学的一个月面试经验,5个大厂offer,最终入职快手!一入职快手大学时期陪了我几年的兄弟又一次离职了,去了另外一个大体量以及大流量的互联网公司 - 快手!真心替他开心!我们从大学认识,到最后毕业一起找工作。一路走来,确实不易!同样是毕业将近 4 年,可是我相当于只待了一家公司,没有过不同环境带来的感受。可能更多的是,我现在所处的环境是那么的熟悉以至于从来没有过离开的想法。有时候心里真心会抵触一个新但陌生的环境。但现实情况是,不断的跳槽可以带来更高的薪资,更多的机会

2021-12-14 14:51:40 2027

原创 【完虐算法】树的基本遍历细节复盘专题

零LeetCode树提计划开始有几天了。今天对「树」的进度做一个简短的小结,群里亲爱的小伙伴进行的怎么样了呢?我这边预计在整个「树」的阶段,预计会进行四个小结以及一个完整的复盘,所以,应该是 5 份总结资料。分布如下:「树」的基础遍历,重点在于「树」的递归的理解模块1:基础遍历,对LeetCode中进行刷题标记模块2:遍历变种-自顶向下,对这些题目进行解释和代码编写模块3:遍历变种-非自顶向下,同样也是对这些题目进行解释和代码编写最终的复盘总结「最重要」还是把咱们的计划列出来:所以

2021-12-09 09:48:22 164

原创 【每天五分钟大数据-第一期】 伪分布式+Hadoopstreaming

说在前面之前一段时间想着把 LeetCode 每个专题完结之后,就开始着手大数据和算法的内容。想来想去,还是应该穿插着一起做起来。毕竟,如果只写一类的话,如果遇到其他方面,一定会遗漏一些重要的点。LeetCode 专题复盘,已经进行了一大半了。大数据计划正式开始有更新大数据想法的时候,想着把平常要注意的问题以及重要的知识点写出来。可是之后想着咱们读者大部分是毕业前后的学生,还是从基础的开始分享。很多人已经在 hive、HBASE、Spark、Flink 这几个方面使用的很熟练了,也有的人虽然

2021-12-07 17:25:15 1909 1

原创 【完虐算法】「字符串-最长公共前缀」5种方法脑洞大开

文章目录说在前面字符串 - 最长公共前缀案例 - 14.最长公共前缀【简单】方法一 Python zip轻松解决方法二 纵向比较方法三 横向比较(咸鱼比较法)方法四 分治思想解决【较重要】方法五 二分思想解决【较重要】大家好!我是Johngo!今天不准备一个专题的模块进行分享。最近在专题制作过程中遇到了最长前缀公共子串的问题,也是读者最近校招面试到的一个题目。为什么拿出这个来说呢?可怕的是,他居然给了 5 种解题方法。更可怕的是,因此他直接少了一轮面试,天哪!!今天顺便分享出来,作为「字符串」

2021-11-29 15:25:34 2305

原创 精心整理C语言88例,2个月整理的精华题目

读前礼:https://www.johngo689.com/2158/xi案例ex01: 将字符串转换为一个整数1 题目函数:fun()功能:将字符串转换为一个整数描述:【不能使用C语言提供的字符串函数】输入:字符串"-1234"输出:整型 -12342 思路思路:将字符串每个位置的字符进行对应的ASCII码转换例如:字符 ‘0’-‘9’ 对应的十进制整数是48~57,那么,将对应的整数减去48就得到了对应的整数二进制十进制十六进制字符0011 00.

2021-11-16 17:34:49 1382

原创 【完虐算法系列】字符串–滑动窗口 复盘总结

LeetCode 刷题的进展有段时间没有更新了,过去的一篇文章有过这方面的解释,今天再来说一下。两点原因,第一点就是有读者说过去文章太长,是否可以考虑截取出来,分类讨论。这一点我是有考虑的,事实上本身文章已经是一个类别了,比如说动态规划,整个介绍超过万字,自我感觉才把一个问题描述的比较清楚。所以,后面考虑再细分,使得想要表述的问题更加调理清楚,可读性更强。另外一点原因呢,就是关于文章页面展示。也是关于一个可读性的方面,这个是真真切切花了将近一个月搞的一个事情。就是重新打理了一个网站(www.johngo

2021-11-15 09:58:58 114

原创 【完虐算法系列】「字符串-逆序」复盘总结

文章目录说在前面字符串 - 逆序案例344.反转字符串【简单】541.反转字符串【简单】大家好!今天分享字符串中的逆序问题!这一块也是字符串中比较简单的内容。然后后面两节会是字符串中比较硬核的内容,分别是字符串中的动态规划问题和 KMP 算法。今天先来说逆序!说在前面言归正传,这一期来说说字符串的第四块内容 「字符串 - 逆序」github:https://github.com/xiaozhutec/share_leetcode文档地址:https://github.com/xiaozh

2021-11-11 16:11:20 3245

原创 删除字符串中所有的空格

1 题目函数:fun()功能:删除字符串中所有的空格举例:主函数中输入“fds afadsf adf d dsf 67d”则输出:“fdsafadsfadfddsf67d”2 思路设置两指针,begin 和 endbegin 和 end 同时从头开始向后移动:当遇到空格的时候,end 向后移动,begin不变当 end 位置不为空格的时候,将 end 位置的字符填充到 begin 的位置最后,在完成去除空格的操作后,在最后添加 ‘\0’3 代码#include &lt

2021-11-10 15:31:56 10148 2

原创 将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中

1 题目编写:fun()功能:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中例如:二维数组中的数据为:W W W WS S S SH H H H则字符串中的内容是:WSHWSHWSH2 思路第一层循环按照列数进行,第二层循环按照行数然后依次提出每一列的字符3 代码为了熟悉二维数组的指针表示,部分代码给出了数组表示和指针表示#include<stdio.h> #include<string.h>#define M 3 #defin

2021-11-09 13:27:44 1932

原创 将字符串转换为一个整数

1 题目函数:fun()功能:将字符串转换为一个整数描述:【不能使用C语言提供的字符串函数】输入:字符串"-1234"输出:整型 -12342 思路思路:将字符串每个位置的字符进行对应的ASCII码转换例如:字符 ‘0’-‘9’ 对应的十进制整数是48~57,那么,将对应的整数减去48就得到了对应的整数二进制十进制十六进制字符0011 0000483000011 0001493110011 0010503220011 001

2021-11-08 18:42:19 1442 1

原创 输入月份号并输出英文月份名

1 题目功能:输入月份号并输出英文月份名描述:使用指针数组创建一个含有月份英文名的字符串数组并使用指向指针的指针指向这个字符串数组,实现输出数组中的指定字符串2 思路使用指针的指针实现对字符串数组中的字符串的输出*month[] 属于指针数组,*month本身就是指针,数组中都是存放着指针。那么 month是指针数组的首地址,**p=month 指向数组中的每个元素3 代码#include <stdio.h> #include <stdlib.h>/**

2021-11-08 16:20:18 6155

原创 使用指针插入元素

1 题目函数:insert()功能:使用指针插入元素描述:在有序(升序)的数组中插入一个数,使得插入的数组仍然有序2 思路参数传递,使用指针变量插入数字,找到插入点,从数组的末端逐个向后移动,最后将要插入的数字放到插入点3 代码#include <stdio.h> #include <stdlib.h>#define N 10/**函数:insert()功能:使用指针插入元素描述:在有序(升序)的数组中插入一个数,使得插入的数组仍然有序**/

2021-11-08 16:07:36 1949

原创 【完虐算法】字符串-旋转词 复盘总结

大家好吖,我是Johngo!有几天没有更新文章了,居然把前几天的送书的事情忘记了。今天一起吧!!说在前面言归正传,这一期来说说字符串的第三块内容**「字符串 - 旋转词」**github:https://github.com/xiaozhutec/share_leetcode文档地址:https://github.com/xiaozhutec/share_leetcode/tree/master/docs整体架构:字符串 - 旋转词今天这期内容是字符串的第三期。首先,把什么是旋转词

2021-11-08 15:34:17 107

原创 Python标准库模块之heapq – 堆构造2021-10-11

Python标准库模块之heapq – 堆构造读前福利:几百本经典书籍https://www.johngo689.com/2158/原文链接:https://www.johngo689.com/2264/堆作为优先队列的常用方法,而且在数据结构和算法方面,经常使用大顶堆和小顶堆进行问题的解决。使用 Python 提供的标准库heapq:import heapq注意:默认的堆结构是小顶堆一、构造堆 & 获取最小值方法一:创建空列表,然后手动加入元素heapq.heappush()

2021-10-11 11:36:03 133

原创 LeetCode《买卖股票的最佳时机》系列题目,最详解

文章目录说在前面引例:只能交易一次一、动态数组定义二、状态转移方程三、初始化四、优化无限制买卖一、动态数组定义二、状态转移方程三、初始化四、优化交易 2 次,最大利润?一、动态数组定义二、状态转移方程三、初始化四、优化交易多次,最大利润?hello,我是 Johngo!股市一点红,股市一点绿!激动的心,颤抖的手,无法控制的身子骨!今天聊一聊股市,股价相关的问题,关系到身家的涨跌。怎么用「动态规划」的思想去获得股市中最大利润。(LeetCode中的股价问题 手动狗头)!说在前面这周总算是把和大家

2021-09-02 10:45:38 222

原创 一个鸡蛋灌饼、、思绪万千...

最近看到群里和票圈疯狂的讨论校招的事情,真是干劲十足。真心为大家“高薪”!看到这个现象真的很开心,能够看到大家这么努力的为了之后的技术路而全力奋斗。彼时的我手里拿着一个鸡蛋灌饼,坐在公司楼下。想到当初的自己,估计也是这样(我真是。。不要face的人,想想真的是这样吗?)。所谓近朱者赤,近大家激情者一定是干劲满满。又想到欠着大家「动态规划」例题总结的部分还没有肝完,羞愧难当!主要是最近发生的事情扰乱了肝文:疫情原因公司规定在家办公。听起来是在家办公,实则工作时长无限放大。加上接了离职小伙伴的项

2021-08-23 14:45:14 75

原创 【长图肝透系列】最长回文子串,动态规划,核心关系要领,到底有什么关系?大厂为什么老爱考这些?

文章目录零、前言一、紧凑的脚步二、快手二面题目三、最长回文子串四、感恩同行零、前言这几天校招的脚步越来越近,不少小伙伴、朋友最近私信我很多关于校招的问题。后面打算做一期出来,帮助大家避避坑。另外,好像也有金九银十这回事情也要到来了,最近好多在职小伙伴都在讨论社招的面试题,又是一个跳槽季。绝大多数是围绕面试,要刷什么题,怎么刷?除了刷题还需要看哪些面经来阻挡八股文似的面试等等…焦虑、等待、努力拼一下又成了这个时间点常常在程序员人群中看到的一个现象。关于我自己的话,还是乖乖的再待着,现在考虑的就是和

2021-08-19 12:08:22 127

原创 LeetCode113 | 路径总和II

每天分享一个LeetCode题目每天 5 分钟,一起进步LeetCode113 路径总和II,地址: https://leetcode-cn.com/problems/path-sum-ii/给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。之前的112题目,计算的是整个路径有没有路径和为 targetSum 的路径,同样是从根结点到叶子结点。这个题目比较麻烦的一点是需要将满足要求的路

2021-08-09 16:28:57 88

原创 【长图肝透系列】终拿字节Offer...动态规划复盘...

大家好!我是 Johngo 呀!和大家一起刷题不快不慢,没想到已经进行到了第二阶段,「动态规划」这部分题目很难,而且很不容易理解,目前我的题目做了一半,凭着之前对于「动态规划」的理解和最近做的题目做一个阶段性的总结!这篇文章其实是我之前写过的一篇,然后现在拿来再做一个润色。「动态规划」看这篇我…保证可以!目标:给小白以及没有明确思路的同学一个指引!拍胸脯保证:读完这篇文章,对于大多数的动态规划的思维逻辑能有一个质的提升。本文较长,建议先收藏,或者直接到 GitHub 中下载文档(https://g

2021-08-06 09:31:44 298

原创 LeetCode112 | 路径总和

每天分享一个LeetCode题目每天 5 分钟,一起进步LeetCode112 路径总和,地址: https://leetcode-cn.com/problems/path-sum/这道题目是 LeetCode 中「树」路径总和的第一个题目,就是给定 targetSum ,去判断,自顶而下到叶子结点,整个路径有没有路径和为 targetSum 的路径,有就返回 True,否则,返回 False。树结点定义class TreeNode(object): def __init__(self,.

2021-08-02 11:13:27 67

原创 【长图肝透系列】讲透树第4集 | 非自顶向下类别题目复盘专题

大家好,我是Johngo!这篇文章是「讲透树」系列的第 4 篇文章,也是「树」专题中非自顶向下这类题目的一个复盘总结。前 3 讲的链接地址在这里了:讲透树1 | 树的基础遍历专题 https://mp.weixin.qq.com/s/nTB41DvE7bfrT7_rW_gfXw讲透树2 | 树的遍历复盘专题 https://mp.weixin.qq.com/s/MkCF5TaR1JD3F3E2MKlgVw讲透树3 | 自顶向下类别题目复盘专题 https://mp.weixin.qq.com/s/

2021-07-28 10:08:00 79

原创 【长图肝透系列】讲透树第3集 | 自顶向下类别题目复盘专题

零刷题复盘进度大家好,我是Johngo!这篇文章是「讲透树」的第 3 篇文章,也是「树」专题中自顶向下这类题目的一个复盘总结。一起刷题的小伙伴们,复盘还是要唠叨一句,记录思路,在记录的过程中,又一次深刻体会!还是直观的先看看本文的所处的一个进度。基本上,绝大多数关于「树」的题目,会有很大一类属于「自顶向下」类型的。什么意思?就是计算结果的时候,通常会涉及从树根到叶子节点的计算过程,比如说最大深度、路径总和、从根结点到叶子结点的所有路径等等,都属于「自顶向下」这类题目。涉及到的题目104.

2021-07-26 11:06:35 98

原创 【长图肝透系列】讲透树第2集 | 树的遍历复盘专题

1 前言大家好,「树」的刷题已经有一段时间了。一来二去时间上有所拖延。之前总结过「树」的基础遍历,这一篇来具体题目看看,对于基础遍历能遇到哪些问题。下图是咱们之前规定的「基础遍历」的一些题目。围绕,前中后序遍历对于N叉树的适用性,已经层序遍历不同的打印方式,有哪些注意点。题目如下:102.二叉树的层序遍历https://leetcode-cn.com/problems/binary-tree-level-order-traversal589.N 叉树的前序遍历https://leetc.

2021-07-26 11:05:08 80

原创 LeetCode104 | 二叉树的最大深度

每天分享一个LeetCode题目每天 5 分钟,一起进步LeetCode104 二叉树的最大深度,地址: https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/树结点定义class TreeNode(object): def __init__(self, val, left=None, right=None): self.val = val self.left = left .

2021-07-21 12:38:20 61

原创 [ LeetCode 107 ] N叉树层序遍历

每天分享一个LeetCode题目每天 5 分钟,一起进步LeetCode N叉树层序遍历,地址: https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/树结点类class Node(object): def __init__(self, val=None, children=[]): self.val = val self.children = childrenN叉树的特殊性,.

2021-07-20 11:28:19 120

原创 [ LeetCode 590 ] N 叉树的后序遍历

每天分享一个LeetCode题目每天 5 分钟,一起进步LeetCode N 叉树的后序遍历,地址: https://leetcode-cn.com/problems/n-ary-tree-postorder-traversal/树结点类class TreeNode(object): def __init__(self, val, children=[]): self.val = val self.children = childrenN 叉树的后序遍历.

2021-07-19 11:43:22 63

原创 [ LeetCode 589 ] N 叉树的前序遍历

每天分享一个LeetCode题目每天 5 分钟,一起进步LeetCode N 叉树的前序遍历,地址: https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/树结点类class TreeNode(object): def __init__(self, val, children=[]): self.val = val self.children = childrenN 叉树的前序遍历.

2021-07-14 11:07:53 70

原创 [ LeetCode 107 ] 二叉树的层序遍历 II

每天分享一个LeetCode题目每天 5 分钟,一起进步!LeetCode 层序遍历,地址:https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/树结点类class TreeNode(object): def __init__(self, val, left=None, right=None): self.val = val self.left = left .

2021-07-13 11:37:19 55

原创 [ LeetCode 102 ] 二叉树的层序遍历

每天分享一个LeetCode题目每天 5 分钟,一起进步!LeetCode 层序遍历,地址:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/树结点类class TreeNode(object): def __init__(self, val, left=None, right=None): self.val = val self.left = left se.

2021-07-13 11:34:36 54

原创 【长图肝透系列】今天来认真谈谈「树」的各种遍历方式以及深入理解下递归的思维方式

零LeetCode树提计划开始有几天了。今天对「树」的进度做一个简短的小结,群里亲爱的小伙伴进行的怎么样了呢?我这边预计在整个「树」的阶段,预计会进行四个小结以及一个完整的复盘,所以,应该是 5 份总结资料。分布如下:「树」的基础遍历,重点在于「树」的递归的理解模块1:基础遍历,对LeetCode中进行刷题标记模块2:遍历变种-自顶向下,对这些题目进行解释和代码编写模块3:遍历变种-非自顶向下,同样也是对这些题目进行解释和代码编写最终的复盘总结「最重要」还是把咱们的计划列出来:所以

2021-07-01 23:02:39 153 2

空空如也

空空如也

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

TA关注的人

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