C++
文章平均质量分 86
swety_gxy
一个IT行业的代码菜鸟,平时喜欢关注媒体类的事物,在此记录自己的修炼历程。
展开
-
编译 bgfx(以windows10/VS2019为例)
bgfx是一个开源的图形api无关的渲染库,由于工作需要,充分认识和感受其源码和相关案例,鄙人花费了一些时间来搭建其环境。一、源码准备 1. 下载bgfx源码:https://github.com/bkaradzic/bgfx 到指定目录(我的是E:\SDKLibary\BGFX), 并解压; 2. 下载bx(作者的一个工具库)源码:https://github.com/bkaradzic/bx到指定目录(我的是E:\SDKLibary\BGFX),并解压;3. 下载...原创 2021-10-07 23:34:45 · 1816 阅读 · 2 评论 -
Leedcode-剑指 Offer 25. 合并两个排序的链表----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000思路:思路1:将2个链表的数据取出来,排好序,重新创建新的链表,返回这个思路与此前的文章Leedcode编程题23: 合并K个排序链表----C++原创 2020-07-26 21:25:40 · 277 阅读 · 0 评论 -
Leedcode编程题-剑指 Offer 32 - I. 从上到下打印二叉树----C++实现
目的:旨在记录在Leedcode网上刷题的过程,记录心得。题目:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]提示:节点总数 <= 1000思路:二叉树的遍历的层次遍历(宽度优先遍历),使用栈、队列等容器进行辅助访问节点。(与 II. 从上到下打印二叉...原创 2020-06-21 20:48:05 · 194 阅读 · 0 评论 -
Leedcode编程题-剑指 Offer 32 - II. 从上到下打印二叉树 II----C++实现
目的:旨在记录在Leedcode网上刷题的过程,记录心得。题目:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]提示:节点总数 <= 1000思路:二叉树的遍历的层次遍历(宽度优先遍历),使用栈、队列等容器.原创 2020-06-20 12:40:18 · 221 阅读 · 0 评论 -
Leedcode编程题-面试题27. 二叉树的镜像----C++实现
目的:旨在记录在Leedcode网上刷题的过程,记录心得。题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入:4/ \2 7/ \ / \1 3 6 9镜像输出:4/ \7 2/ \ / \9 6 31示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]限制:0 <= 节点个数 <= ...原创 2020-06-17 22:47:29 · 297 阅读 · 0 评论 -
Leedcode编程题-面试题55 - I. 二叉树的深度----C++实现
目的:旨在记录在Leedcode网上刷题的过程,记录心得。题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。思路:递归遍历方法若当前结点为空则返回0;否则分别求当前结点的左右子树的深度,取左右...原创 2020-06-17 22:21:40 · 213 阅读 · 0 评论 -
Leedcode编程题21:合并两个有序链表----C++实现
目的:旨在记录在Leedcode网上刷题的过程,记录心得。题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:解法1:递归法比较两个链表的头结点,递归调用函数,注意终止条件。时间复杂度:O(n+m);空间复杂度:O(n+m)解法2:迭代法设置哑结点简化代码,当一方为空结点.原创 2020-06-17 22:06:41 · 284 阅读 · 0 评论 -
Leedcode编程题-面试题22. 链表中倒数第k个节点----C++实现
目的:旨在记录在Leedcode网上刷题的过程,记录心得。题目:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.思路:采用快慢指针:快指针先走K步;然后慢指针开始跟快指针同原创 2020-06-16 21:34:33 · 202 阅读 · 0 评论 -
Leedcode编程题-面试题58 - II. 左旋转字符串----C++实现
目的:旨在记录在Leedcode网上刷题的过程,记录心得。题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"限制:1 <= k...原创 2020-06-16 21:19:31 · 190 阅读 · 0 评论 -
Leedcode编程题41: 缺失的第一个正数----C++实现
目的:旨在记录在Leedcode网上刷题的过程,记录心得。题目:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1提示: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。思路:last:保存遍历到的符合条件的最大范围思路:先将数组排好序;依次遍历数组元素,处理符合[原创 2020-05-21 12:45:42 · 227 阅读 · 0 评论 -
Leedcode编程题147: 对链表进行插入排序----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目对链表进行插入排序。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3输出: ...原创 2020-02-03 08:59:08 · 274 阅读 · 0 评论 -
Leedcode编程题92: 反转链表 II----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤m≤n≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL思路将指针移动到m-1...原创 2020-01-21 23:30:33 · 158 阅读 · 0 评论 -
Leedcode编程题206:反转链表----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?思路每次循环,都将当前节点指向它前面的节点,然后当前节点和前节点后移。...原创 2020-01-20 21:51:57 · 168 阅读 · 0 评论 -
Leedcode编程题217: 存在重复元素 ----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4...原创 2020-01-17 23:17:00 · 209 阅读 · 0 评论 -
Leedcode编程题219: 存在重复元素 II----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个整数数组和一个整数k,判断数组中是否存在两个不同的索引i和j,使得nums [i] = nums [j],并且 i 和 j的差的绝对值最大为 k。示例1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1...原创 2020-01-16 22:20:42 · 158 阅读 · 0 评论 -
Leedcode编程题23: 合并K个排序链表----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6思路参考大神的思路,实现的代码。1...原创 2020-01-15 22:49:58 · 203 阅读 · 0 评论 -
Leedcode编程题49: 字母异位词分组----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输...原创 2020-01-12 23:52:43 · 444 阅读 · 0 评论 -
Leedcode编程题18: 四数之和----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个包含n 个整数的数组nums和一个目标值target,判断nums中是否存在四个元素 a,b,c和 d,使得a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, ...原创 2020-01-11 12:13:40 · 236 阅读 · 0 评论 -
Leedcode编程题454: 四数相加II----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定四个包含整数的数组列表A , B , C , D ,计算有多少个元组 (i, j, k, l),使得A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最...原创 2020-01-11 11:30:24 · 465 阅读 · 0 评论 -
Leedcode编程题451: 根据字符出现频率排序----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。示例 2:输入:"cccaaa"输出:"cccaaa"...原创 2020-01-10 15:14:20 · 413 阅读 · 0 评论 -
Leedcode编程题209:长度最小的子数组----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组[4,3]是该条件下的长度最小的连续子数组。进阶:如果你已经完成...原创 2020-01-09 17:09:50 · 234 阅读 · 0 评论 -
Leedcode编程题11:盛最多水的容器----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 ...原创 2020-01-08 12:03:06 · 224 阅读 · 0 评论 -
Leedcode编程题215:数组中的第K个最大元素----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有...原创 2020-01-08 10:10:57 · 156 阅读 · 0 评论 -
Leedcode编程题88:合并两个有序数组----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:n...原创 2020-01-08 10:03:34 · 211 阅读 · 0 评论 -
Leedcode编程题75:颜色分类----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,...原创 2020-01-06 13:56:15 · 311 阅读 · 0 评论 -
Leedcode编程题80:删除排序数组中的重复项 II----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素...原创 2020-01-05 14:07:12 · 162 阅读 · 0 评论 -
Leedcode编程题27:移除元素----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], ...原创 2020-01-05 13:07:29 · 107 阅读 · 0 评论 -
Leedcode编程题26:删除排序数组中的重复项----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 ...原创 2020-01-04 14:06:29 · 185 阅读 · 0 评论 -
Leedcode编程题283:移动零----C++实现
目的旨在记录在Leedcode网上刷题的过程,记录心得。题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路依次遍历数组,遇到0元素便开始统计step,遇到非0元素便开始移动st...原创 2020-01-03 23:45:52 · 385 阅读 · 0 评论 -
Mac 下的VS code编辑器进行C/C++开发
问题1: 如何配置?参考博客:【链接】Mac下使用VScode进行C/C++开发https://www.cnblogs.com/lianshuiwuyi/p/8094388.html问题2: 自己写的类实现,如何用起来?(1)在tasks.json文件中,args[]标签中,应该包含所有的cpp文件,比如下面的代码:"args":[ "m...原创 2019-12-27 21:23:06 · 745 阅读 · 2 评论 -
二叉树的创建和遍历---C++实现
1. 二叉树概念二叉树是一颗树,其中每个节点都不能有多于2个的子树,一般会有左子树和右子树,两者均可能为空。二叉树实际上是图。2. 二叉树节点和类的声明创建树之前需要先声明一个树的结点。//声明树结点typedef struct node { char element; //结点值 struct node* left; //左子树 struct node* right...原创 2019-12-27 17:10:10 · 811 阅读 · 0 评论