自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(35)
  • 收藏
  • 关注

原创 LLVM+clang+VS Code 搭建 C++ 编译环境(windows)

LLVM+clang+VS Code 搭建 C++ 编译环境(windows)

2023-03-26 22:16:32 571

原创 一招解决 vscode 检测到 #include 错误

在使用 vscode 的时候,经常会遇到检测到 #include 错误。请更新 includePath。本文介绍遇到此类问题,如何去解答。

2023-03-26 22:12:58 379

原创 ‘iostream‘ file not found clang(pp_file_not_found) 终极解决方法

一文解决 'iostream' file not found clang(pp_file_not_found)

2023-03-25 15:49:57 1745

原创 互联网经典算法面试题-验证二叉搜索树

前言大家好,我是熊哥。今天给大家带来一道与二叉树相关的面试高频题,这道题在半年内被谷歌、字节、微软和亚马逊等大厂作为面试题,即力扣上的第 98 题-验证二叉搜索树。本文主要介绍递归和深度优先搜索两种方法来解答此题,供大家参考,希望对大家有所帮助。验证二叉搜索树给你一个二叉树的根节点root,判断其是否是一个有效的二叉搜索树。有效二叉搜索树定义如下:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。..

2021-11-25 02:02:49 651

原创 动画图解一道互联网大厂的高频面试题-数组的相对排序

前言大家好,我是来自于华为的程序员小熊。今天给大家带来一道与数组相关的面试高频题,这道题是谷歌、腾讯、苹果和亚马逊等大厂的面试题,即力扣上的第 1122 题-数组的相对排序。本文主要介绍计数排序+哈希表的策略来解答此题,供大家参考,希望对大家有所帮助。数组的相对排序给你两个数组,arr1和arr2,arr2中的元素各不相同arr2中的每个元素都出现在arr1中对arr1中的元素进行排序,使arr1中项的相对顺序和arr2中的相对顺序相同。未在arr...

2021-09-15 15:55:05 139

原创 只赢不亏的买股票的方法

前言大家好,我是来自于「华为」的「程序员小熊」。今天给大家带来一道与「贪心算法」相关的题目,这道题同时也是字节、苹果和亚马逊等互联网大厂的面试题,即力扣上的第 122 题-买卖股票的最佳时机 II。本文主要介绍「贪心」的策略来解答此题,供大家参考,希望对大家有所帮助。买卖股票的最佳时机 II题目描述示例解题思路贪心算法是通过做出一系列选择来求出问题的最优解,在每个决策点,它做出当时看来最佳的选择。通过「局部最优」的选择,寄希望实现「全局最优解」。「举例」以 pri

2021-08-19 00:02:14 116

原创 如何快速合并两个有序数组?

前言大家好,我是来自于「华为」的「程序员小熊」。今天给大家带来一道与「数组」相关的题目,这道题同时也是字节、微软和亚马逊等互联网大厂的面试题,即力扣上的第 88 题-合并两个有序数组。本文主要介绍「逆向双指针」的策略来解答此题,供大家参考,希望对大家有所帮助。合并两个有序数组题目描述示例1:输入:nums1=[1,2,3,0,0,0],m=3,nums2=[2,5,6],n=3输出:[1,2,2,3,5,6]示例2:输入:nums1=[1]...

2021-07-11 11:46:00 4637

原创 专业小偷才能盗取最大金额的现金

前言大家好,我是「程序员小熊」,就职于「华为」。今天给大家带来一道与「动态规划」相关的题目,这道题同时也是包括字节、微软和谷歌等互联网大厂的面试题,即力扣上的第 198 题-打家劫舍。本文主要介绍两种「动态规划」的策略来解答此题,供大家参考,希望对大家有所帮助。打家劫舍题目示例1:输入:[1,2,3,1]输出:4解释:偷窃1号房屋(金额=1),然后偷窃3号房屋(金额=3)。偷窃到的最高金额=1+3=4。示例2:输...

2021-07-01 23:37:35 556 2

原创 最大子序和,你会吗?

前言大家好,我是来自「华为」的「程序员小熊」。清明假期马上就要结束了,小熊给大家带来一道笔试和面试中与「动态规划」相关的常考的简单题,这道题被字节、微软、亚马逊和苹果等各大互联网大厂作为笔试题。这道题就是 Leetcode 的第 53 题-最大子序和,了解「动态规划」的童鞋,在看到最大两个字的时候,很容易就会想到用「动态规划」去解答,因为涉及到「最优解」的问题,一般都可以通过动归去做。本题小熊提供「动态规划」的思路供大家参考,希望对大家有所帮助。题目给定一个整数数组nums,找到一个具..

2021-06-14 09:07:02 119

原创 查找表经典问题

前言大家好,我是来自「华为」的「程序员小熊」。清明假期到了,小熊给大家带来一道简单题,让大家放松放松。这道题也是各大厂的面试题,例如苹果、脸书、亚马逊和微软等等。本文主要介绍通过「查找表」的策略来解答此题,同时也会介绍「双指针」中的「对撞指针」方法,供大家参考,希望对大家有所帮助。两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个...

2021-06-12 18:36:23 165

原创 链表问题,如何优雅递龟?

前言大家好,我是来自「华为」的「程序员小熊」。绝大部分童鞋都知道,解决「链表」相关问题时,常用的解题套路主要包括「双指针」、「迭代」和「虚拟头节点」等等。今天「小熊」介绍采用「递归」的策略,秒杀「链表」相关问题,使得代码更「优雅」,并以两道常见的面试题作为例题来讲解,供大家参考,希望对大家有所帮助。链表与递归链表具有天然的递归性,一个链表可以看出头节点后挂接一个更短的链表,这个更短的链表是以原链表的头节点的下一节点为头节点,依次内推,直到最后的更短的链表为空,空本身也是一个链表(最基础的)。

2021-06-05 14:16:43 88

原创 快慢指针---不就是快指针走两步慢指针走一步嘛?

前言大家好,我是程序员小熊,来自大厂的程序猿。快慢指针是面试中常考的知识点,尤其是涉及到链表相关问题,比如判断单链表是否有环-141. 环形链表和求环形单链表入环的第一个节点-142. 环形链表 II等等。对快慢指针有所了解的童鞋都知道,其解题的套路一般是快指针每次走两步,慢指针每次走一步,然后再根据一些判断条件去做相应的操作。可快慢指针真的只是快指针走两步慢指针走一步嘛?本文以求单链表的上中间节点和下中点为例子,深入剖析,供大家参考,希望对大家有所帮助。题目一给定一个头结点为 head 的

2021-05-17 00:34:18 273

原创 手撕腾讯面试题-乘积最大子数组

前言动态规划是面试中常考的知识点,特别是一些互联网大厂的面试,可以说必会考到一道涉及动态规划的算法题,因此掌握动态规划,能提高面试的通过率。本文的内容为通过一道腾讯的面试题,即力扣 152. 乘积最大子数组,由暴力法求解一步一步演化到由动态规划进行求解来介绍动态规划。题目给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例解题思路注意点本题要求的是乘积最大的连续子数组而不是乘积最大的子序列,因此要

2021-05-10 16:39:36 192

原创 互联网大厂算法面试题之旋转链表

大家好,我是 程序员小熊,来自某 大厂 的程序猿,今天带来一道来自互联网大厂(字节、腾讯、微软、苹果等) 面试题 Leetcode 61. 旋转链表 ,提供 虚拟头节点 + 双指针 的解题思路,采用 动图 的方式进行层层剖析,供大家参考,希望对大家无论是刷题还是面试都有所帮助。61. 旋转链表描述给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。解题思路思考考虑以下几种情况:特殊情况 链表为空或只有一个节点; k 的值.

2021-04-29 19:58:58 177

原创 看完互联网大佬的「LeetCode 刷题手册」, 手撕了 400 道 Leetcode算法题

大家好,我是 程序员小熊 ,来自 大厂 的程序猿。相信绝大部分程序猿都有一个进大厂的梦想,但相较于以前,目前大厂的面试,只要是研发相关岗位,算法题基本少不了,所以现在很多人都会去刷 Leetcode 来保持手感,但有不少人反馈刷题效率很低,今天笔者抽空整理了 三份 分别来自 谷歌的高畅、前阿里的霜神和灵魂机器 的刷题手册,以供大家参考,希望对大家无论是刷题还是面试都有所帮助。一、 A LeetCode Grinding Guide (C++ Version)作者:谷歌的高畅背景:作者在.

2021-04-23 22:53:17 428

原创 好家伙,你管这破玩意叫“双指针”?

大家好,我是 程序员小熊 ,来自华为的程序员。今天给大家带来一道亚马逊的面试题,即 LintCode 1478 · 最接近target的值 ,提供 双指针 的解题思路,供大家参考,希望对大家无论是刷题还是面试都有所帮助。1478 · 最接近target的值描述给出一个数组,在数组中找到两个数,使得它们的和最接近目标值但不超过目标值,返回它们的和。解题思路思考: 如果数组是已按照 升序排列 的,那么这个题目是不是就很好做?那样的话,可以定义两个分别 指向数组的第一个元素和最后一个元.

2021-04-18 11:46:24 145

原创 动图:删除链表的倒数第 N 个结点

本文主要介绍一道面试中常考链表删除相关的题目,即 leetcode 19. 删除链表的倒数第 N 个结点。采用 双指针 + 动图 的方式进行剖析,供大家参考,希望对大家有所帮组。19. 删除链表的倒数第 N 个结点给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?解题思路在链表中要删除某个节点 nodeB,必须先找到 该节点的前一节点 nodeA ,再将 nodeA 指向 nodeB 的下一节点 nodeC ,从而实现节点 n.

2021-04-14 05:54:08 441

原创 汉明距离(位运算,清晰图解)

题目两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意: 0 ≤ x, y < 2^31.示例:解题思路要找出两个整数对应二进制位不同的位置的数目,对 位运算 有所了解的童鞋,应该会很自然地想到位运算中的 按位异或,通过将两个整数对应二进制位 按位异或(同一位置,元素相同异或得 0 或者得 1) 找到其二进制不同的位置,找到之后,只需要统计异或的结果中 1 的个数即可。举栗以 示例 为栗,如

2021-04-07 15:55:59 707

原创 双指针团灭删除有序数组中的重复项系列

26. 删除有序数组中的重复项给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。解题思路由于题目已明确告知 不使用额外数组空间,必须在原地修改输入数组,因此不能采用诸如 哈希表 等通过开辟额外空间的方法去解决。又由于题目告知数组是 升序排列 的,因此可以通过 设置两个均指向数组第一个元素(从第零个元素开始算)的指针(下标),一个用

2021-04-07 15:00:22 107

原创 史上最清晰的三路快速排序

更多精彩文章,请关注公众号【TanLiuYi00】。排序算法不论是在刷题还是面试都经常遇到,掌握它能提升自己的算法功力从而增加自己面试通过的几率。本文主要介绍一下三路快排,并以微软的一道面试题leetcode75. 颜色分类作为例题来讲解,供大家参考,希望对大家有所帮助。三路快排使用快速排序的思想给带有大量的重复键值的数组进行排序,一种经典的实现方式就是三路快排(Quick Sort 3 Ways)。主要思想将整个数组分成三部分,即小于 v、等于 v 和大于v。分割后...

2021-03-15 17:37:18 1620

原创 字符串最长子串难?滑动窗口拯救你

题目:leetcode3. 无重复字符的最长子串目录题目leetcode3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。子串:串中任意个连续的字符组成的子序列称为该串的子串。解题思路要求字符串的不含有重复字符的最长子串的长度,只需要先找到最长子串然后再求其长度即可,找最长子串我们可以通过滑动...

2021-02-20 01:50:04 156

原创 leetcode 34. 在排序数组中查找元素的第一个和最后一个位置

更多精彩文章请关注微信公众号:TanLiuYi00前言今天主要讲解的内容是:如何在已排序的数组中查找元素的第一个和最后一个位置。以 leetcode 34 题作为例题,提供二分查找的解题思路,供大家参考。题目详述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:n

2021-02-05 00:54:14 271

原创 四种方法解决leetcode203. 移除链表元素

更多精彩文章请关注微信公众号:TanLiuYi00本文主要针对移除单链表中的元素,提供了四种解题思路,供大家参考,希望能对大家提供帮助。题目解法一:递归思路:在之前的链表推文字节面试题 leetcode 83. 删除排序链表中的重复元素和面试不可不会的单链表反转中都提到了链表具有天然的递归性,一个链表可以看成头节点后面挂接一个更短的(缺少头节点)的链表,同理这个更短的链表也可以看成头节点后面挂接一个更更短的链表;依次类推。本题也可采用这种思路来做,具体如下图所示。如上图示,.

2021-02-01 02:09:02 382

原创 单链表之环形链表

更多精彩文章请关注微信公众号:TanLiuYi00不论在面试或者刷题过程中,很大概率都会遇到环形链表这种类型的题目,例如 leetcode141. 环形链表 以及 leetcode 142. 环形链表 II等,本文主要介绍通过快慢指针法来解决此类题型,以供大家参考。环形链表环形链表大致样子如下图所示:快慢指针法判断链表是否是环形链表,一般通过快慢指针法。操作步骤一、分别定义两个均指向头节点的指针(fast/slow);二、快指针每次走两步,慢指针每次走一步;...

2021-02-01 01:49:31 192

原创 微信信用卡还款后台开发最新面试真题

今天(2021.01.23),一位做软件开发的朋友参加了腾讯微信部门,信用卡还款后台开发视频面试,分享一下面试官出的题,供大家参考,以备不时之需。岗位:微信信用卡还款后台开发负责信用卡还款相关系统的后台开发;参与模块设计开发,业务逻辑开发,银行接入等工作;参与相关子系统及业务流程优化重构,研发过程优化工作。工作要求计算机、通信相关专业本科以上学历;3年以上linux服务器端软件开发经验; 编程基本功扎实,精通C/C++,熟悉面向对象技术,设计模式; 精通TCP/IP协议相关知..

2021-01-23 23:20:05 246

原创 脸书面试题 leetcode 209. 长度最小的子数组(滑动窗口)

更多精彩文章请关注微信公众号:TanLiuYi00今天给大家分享一道 facebook 的面试题,也就是Leetcode209. 长度最小的子数组,提供滑动窗口解题思路,供大家参考。题目给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组..

2021-01-23 12:06:08 149

原创 字节面试题 leetcode 83. 删除排序链表中的重复元素

更多精彩文章请关注微信公众号:TanLiuYi00今天给大家分享一道字节跳动的面试题,也就是 Leetcode83. 删除排序链表中的重复元素,提供三种(递归、迭代(单指针、双指针))解题思路,供大家参考。 题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1-&gt...

2021-01-23 11:58:44 211

原创 面试不可不会的单链表反转

更多精彩文章请关注微信公众号:TanLiuYi00单链表反转是面试中常考的一道题,这道题看起来简单,但是能一遍写出 bug free 的代码相当不容易,本文主要提供递归和迭代两种解题方法,供大家参考。题目 ...

2021-01-23 11:41:26 132 2

原创 字节笔试题 leetcode 69. x 的平方根

题目如下图示: 更多精彩文章请关注微信公众号:TanLiuYi00题目要求非负整数x的平方根,相当于求函数y = √x中...

2021-01-02 10:57:19 151

原创 二分查找(折半查找)详解

前提区间(数组或其他)是单调(有序)的。主要思路将区间分成三部分,[low, mid)、[mid, mid](只有一个值即中点 (mid))和 (mid, high] ,比较中点 mid 对应的元素值与目标元素值 target 的大小关系,等于 target,代表找到了,直接返回,否则就在(小于target)前半区间 [low, mid) 或(大于target)后半区间(mid, high] 中查找。具体操作如下:判断区间中点 mid 对应的元素的值是否等于目标元素 target 的值.

2020-11-21 03:01:12 613

原创 C Primer Plus (第六版)中文版 第九章 编程练习答案

1、设计一个函数min(x, y),返回两个double类型值得较小值。在一个简单的驱动程序中测试该函数。#include<stdio.h>double min(double, double );int main(){ double a, b; printf("Please input two double numbers(q to quit): "); while(sc

2020-05-13 23:54:39 521

原创 C Primer Plus (第六版)中文版 第十五章 编程练习答案

1. 编写一个函数,把二进制字符串转换为一个数值。例如,有如下的语句:   char *pbin = "01001001"; 那么把pbin作为参数传递给该函数后,它应该返回一个int类型的值25.#include&lt;stdio.h&gt;#define LEN 100int bstr_to_dec(char s[LEN]);int main(){ char s[LEN] = "0100100...

2018-06-11 00:56:49 1740

原创 C Primer Plus (第六版)中文版 第七章 编程练习答案

C Primer Plus (第六版)中文版 第七章 编程练习答案

2017-11-30 01:01:46 6365 3

原创 C Primer Plus (第六版)中文版 第十章 编程练习答案

C Primer Plus (第六版)中文版 第十章 编程练习答案

2017-11-29 01:18:10 6290 3

原创 C Primer Plus 第六版 第六章 编程练习答案

1.编写一个程序,创建一个具有26个元素的数组,并在其中存储26个小写字母。并让该程序显示该数组的内容。 #include&lt;stdio.h&gt;#define SIZE 26int main(){ char zimu[SIZE]; int i; for(i = 0; i &lt; SIZE; i++) zimu[i] = 'a' + ...

2017-11-22 00:28:29 10344 6

空空如也

空空如也

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

TA关注的人

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