C++
文章平均质量分 51
dslab_chp
菊厂程序员,笔耕不辍,拥抱开源精神
展开
-
红黑树-好文转载
转载https://blog.csdn.net/qq_26222859/article/details/47266965?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%转载 2021-08-19 09:43:30 · 100 阅读 · 0 评论 -
leetcode--二叉树
144. 二叉树的前序遍历给你二叉树的根节点 root ,返回它节点值的 前序 遍历思路:对于前序,中序,后序,这里我们可以采用两种办法,一种是递归方法,这个方法对于这三种代码最简洁且变化不大。另一种方法是迭代的方法,这个方法对于这三种遍历,变化较大需要进行区分。递归法:struct TreeNode{ int val; Treenode *left; TreeNode *right; TreeNode(int x):val(x),left(NULL),right(NULL){}};c原创 2021-07-16 11:41:03 · 369 阅读 · 0 评论 -
leetcode-栈和队列
232. 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 falseclass MyQueue{ public: stack<int> stIn; st原创 2021-07-13 16:30:38 · 162 阅读 · 0 评论 -
leetcode-字符串
541. 反转字符串 II给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例:输入: s = “abcdefg”, k = 2输出: “bacdfeg”思路:注意这里的反转字符串指的是...原创 2021-07-09 10:35:32 · 2296 阅读 · 0 评论 -
leetcode--哈希表
242. 有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。思路:数组也是一个简单的哈希表,通过用数组的方式来记录,这个数组大小为26因为一共26个字母,不用去记a的ASCII的值,我们只需要知道相对位置,就可以。对于一个字符串,对出现原创 2021-07-03 16:59:16 · 141 阅读 · 0 评论 -
leetcode-链表
23移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]思路:采用递归和迭代的方法class Solution{ public: ListNod原创 2021-06-11 11:40:18 · 105 阅读 · 2 评论 -
leetcode 螺旋矩阵
59给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:1 2 38 9 47 6 5输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]思路:要控制每一条边的边界取值,取左闭右开,模拟顺时针画矩阵的过程class Solution{public: vector<vector<int>> generat原创 2021-06-10 10:54:57 · 194 阅读 · 0 评论 -
leetcode 滑动窗口
209长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, nums = [1,4,4]输原创 2021-06-09 09:41:31 · 79 阅读 · 0 评论 -
leetcode 移除元素
27给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度原创 2021-06-06 15:45:18 · 139 阅读 · 0 评论 -
leetcode 二分查找-C++
题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0思路开始的时候看着道题,首先想到用二分查找法,但是题目中又有一个条件,找不到就要返回按顺序插入的位置这个时候依然可以使原创 2021-06-02 10:06:18 · 260 阅读 · 0 评论 -
斐波那契 C++
源自leetcode的上的一道题目写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1:输入:n = 2输出:1原创 2021-05-08 21:30:30 · 714 阅读 · 0 评论 -
继承与多态2
问题描述创建一个Shape类包含面积和周长以及定点函数,并派生出Rectangle,Circle类,然后Rectangle类又派生出Square类#include<iostream>using namespace std;const double PI=3.14;class Shape{ public: virtual double getarea()=0; virtual double getPerim()=0; int getvertextcoun原创 2021-01-13 09:15:37 · 92 阅读 · 0 评论 -
C++实现前置和后置++,--
前置和后置++,–题目描述:定义一个Point类要求实现对点的前置和后置++,–首先要明确,前置和后置++,–的计算过程++i //表示i值直接加1,然后进行后续操作比如输出i++ //表示先进行后续操作比如输出,再i+1–的过程和上面类似#include<iostream>using namespace std;class Point{ private: int x,y; public: Point()=default; Point原创 2021-01-12 11:15:32 · 610 阅读 · 0 评论 -
继承问题
多态与继承首先要明确一点,在继承的时候是不会继承基类的构造函数和析构函数的问题:编写出Mammal并派生出Dog类,两者都有speak()函数,并设为虚函数,要求实现多态性#include<iostream>using namespace std;class Mammal{ private: int age; char gender; public: void initMammal(int age,char gender){ //进行初始化的原创 2021-01-11 14:53:09 · 143 阅读 · 0 评论 -
多态--运算符重载
多态双目运算符的重载实现点的加减P1(1,2)P2(2,3)实现P3=P1+P2=(3,5)或P3=P1-P2=(-1,-1)#include<iostream>using namespace std;class Complex{ private: double real; double imag; public: //******************* Complex(){} Complex(double r,原创 2021-01-08 11:33:10 · 152 阅读 · 0 评论 -
继承
问题定义一个基类Shape,然后派生出Rectangle和Circle类,之后Rectangle派生出Square类,他们都具有getArea()函数。计算对象的面积#include<iostream>using namespace std;const float PI=3.14f;class Shape{ public: Shape(){} ~Shape(){} virtual float getarea(){return -1;}};class原创 2021-01-07 15:43:24 · 144 阅读 · 0 评论 -
C++----矩阵转置
题目要求将一个矩阵转置由用户输入行列思路:如果有用户输入行列的话,我们不知道用户输入了一个几维的数组,所以这样要回归到数组的本来定义是申请一块连续的存储空间,比如一个二维数组存储情况的一维表现就是a11,a12,a21,a22。所以利用这个特性,来解决这个问题。#include<iostream>using namespace std;void convert(int *array,int n){ int i,j,k; for(i=0;i<n;i++)原创 2020-12-17 11:26:31 · 2327 阅读 · 1 评论