自定义博客皮肤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)
  • 收藏
  • 关注

原创 LeetCode1

两数之和1. 题目描述给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能重复出现。你可以按照任意顺序返回答案。示例输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为nums[0] + nums[1] = 9。2. 解法当我们希望a+b=ca+b=ca+b=c时,反过来就是希望b=c−ab=c-ab=c−a。从这个

2022-05-04 20:09:18 118

原创 LeetCode28—KMP算法

实现strStr()1. 题目描述实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例输入:

2022-04-26 15:40:03 183

原创 LeetCode125

验证回文串1. 题目描述给定一个字符串,验证它是否是回文串。只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例输入:“A man, a plan, a canal : Panama”输出: true解释:“amanaplanacanalpanama” 是回文串2. 解法2.1 我的解法我的想法是遍历字符串,判断当前字符是不是数字和字母。如果不是,就删除当前字符;如果是大写字母,就转为小写字母。class Solution {publi

2022-04-25 18:05:47 134

原创 LeetCode8——有限状态机

字符串转换整数(atoi)1. 题目描述请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步

2022-04-24 21:59:48 933

原创 LeetCode48

旋转图像1. 题目描述给定一个n×n的二维矩阵matrix表示一个图像,请你将图像顺时针旋转90°。你必须原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例2. 解法2.1 转置反转解法将一个矩阵顺时针旋转90°,其实可以先将矩阵转置,再将每一行的数组对称反转即可。class Solution {public: void rotate(vector<vector<int>>& matrix) {

2022-04-23 14:20:40 459

原创 LeetCode36

有效的数独1. 题目描述请你判断一个9×9的数独是否有效。只需要根据以下规则,验证已填入的数字是否有效即可。数字1-9在每行只出现一次;数字1-9在每列只出现一次;数字1-9在每一个划分好的3×3九宫格内只出现一次。注意:一个有效的数独不一定是可解的;只需要根据以上规则,验证已经填入的数字是否有效即可。空白格用’.'表示。示例输入:board =[[“5”,“3”,“.”,“.”,“7”,“.”,“.”,“.”,“.”],[“6”,“.”,“.”,“1”,“9”,“5”

2022-04-23 10:00:58 46

原创 LeetCode283

移动零1. 题目描述给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。示例输入:[0,1,0,3,12]输出:[1,3,12,0,0]2. 解法2.1 我的双指针看到这个题目首先想到了这两天练过的双指针,感觉可以用来处理这种移动元素之类的题目。我一开始的想法是利用双指针将0向后移动。用指针从后往前遍历,左指针遇到0就将左右指针之间的元素向左旋转一个单位。制作了个动图:根据这个动图编写的代码:

2022-04-21 20:58:32 43

原创 LeetCode66

加一1. 题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。可以假设除了0以外,这个整数不会以0开头。示例输入:[9,9]输出:[1,0,0]2. 解法2.1 我的解法我的想法是模拟人们计算加法的步骤。可以想象,加法是从低位开始,若有进位则逐渐向高位进位。因此我想从最后一位开始遍历数组,将其++判断是否有进位。如果没有进位,则该位++后直接输出数组为答案;否则则将该位置为0,再判断倒数第二位是否进位,以

2022-04-21 15:55:14 828

原创 LeetCode350

两个数组的交际21. 题目描述给你两个整数数组nums1和nums2,请你以数组的形式返回两数组的交集。返回结果中每个元素出现的次数,英语元素在两个数组中都出现的次数一致。可以不考虑输出结果的顺序。示例输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]2. 解法2.1 我的解法-双map一开始我的思路是:我想要统计每个数组中每个元素出现的次数,然后对比这两份统计结果,取其中较小的次数填入答案。由于要统计元素出现的次数,我想到了map或者数组。以示例为

2022-04-21 10:20:11 856

原创 LeetCode217 & 136

存在重复元素1. 题目描述给你一个整数数组nums,如果任一值在数组中出现至少两次,返回true;如果数组中元素互不相同,返回false。示例输入:nums=[1,2,3,1]输出:true2. 解法2.1 排序利用sort函数将数组排序,那么重复元素一定相邻,基于此编写程序。class Solution {public: bool containsDuplicate(vector<int>& nums) { if(nums.si

2022-04-20 20:36:04 643

原创 LeetCode189

轮转数组1. 题目描述给你一个数组,将数组中的元素向右轮转k个位置,其中k是非负数。示例输入:nums = [1,2,3,4,5,6,7], k = 3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]向右轮转2步:[6,7,1,2,3,4,5]向右轮转3步:[5,6,7,1,2,3,4]2. 解法2.1 最开始的做法这里有个坑,就是轮转次数k是可以大于数组长度的。但是当k%nums.size()=0k \% nums.size()=0k%nu

2022-04-20 16:38:48 301

原创 LeetCode26

删除有序数组中的重复项1. 题目描述给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每一个元素只出现一次,返回删除后数组的新长度。返回后的元素应当也是升序排列的。示例输入:[0,0,1,1,1,2,2,3,3,4]输出:5,nums = [01,2,3,4]2. 解法解法为双指针。一个指针ititit固定不动,另一个指针it1it1it1从it+1it+1it+1开始往后遍历,每遍历一个数据,就判断一下ititit与it1it1it1的大小关系:如果相等,那么++it1++

2022-04-20 13:51:57 171

原创 LeetCode122

买卖股票的最佳时机21. 题目描述给你一个整数数组prices,其中prices[i]表示某只股票第i天的价格。在每一天都可以决定是否购入和/或出售股票,你在任何时候最多只能持有一股股票。也可以先购买然后在同一天出售。返回你能获得的最大利润。示例输入:prices = [7,1,5,3,6,4]输出:7解释:在第二天购入,第三天售出,获得利润5-1=4。然后在第四天购入,第五天售出,利润为6-3=3.共计利润7。2. 解法2.1 搜索极值根据题意,其实就是在数组中寻找极大极小值,然

2022-04-20 13:25:59 223

原创 ABAQUS瞬态动力学仿真

ABAQUS瞬态动力学仿真1. 摄取频率在step -> linear perturbation -> frequency下,算法选择lanczos,频率阶数自选。2. 瞬态动力学在step -> linear perturbation ->modal dynamics下。time period代表现实中的时间,根据需要设置时长。阻尼选择rayleigh,start mode选1,end mode在步骤一算的频率阶数以内即可。alpha与beta写0。3. 设置外力波

2022-04-12 15:47:52 2360

原创 C++(十八):演讲比赛管理系统

演讲比赛管理系统1. 比赛规则12名选手,分组比赛,每组6人;选手有编号10001~10012;第一轮分为两个小组,整体按照选手编号进行抽签后顺序演讲;十名评委给每名选手打分,去除最高分和最低分,求平均分为成绩;小组演讲完成后,淘汰最后三名选手,前三名晋级,进行下一轮;第二轮为决赛,前三名胜出;每轮比赛过后显示晋级选手信息。2. 程序设计2.1 管理类Manager.h#pragma once#include <iostream>#include <str

2021-12-19 17:22:30 866

原创 C++(十七):STL之函数对象与算法

函数对象和算法1.函数对象1.1 概念所谓函数对象,即时由重载了函数调用操作符的类所创建的对象。函数对象在使用重载的()时,行为类似于函数调用,故而也叫做仿函数。所以,函数对象的本质是一个类,而非函数。1.2 使用函数对象在使用的时候具有以下特点:函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值;函数对象超出普通函数的概念,可以有自己的成员、状态;函数对象可以作为参数传递。下面是示例:class MyClass{public: MyClass() {

2021-12-18 11:12:50 794

原创 C++(十六):STL之容器

容器1. String1.1 String的基本概念1. String1.1 String的基本概念String本质上是一个类,一个封装了char*类型的容器,属于C++风格的字符串。其内部封装了很多成员方法,包括查找、拷贝、删除、替换、插入等。...

2021-12-12 21:39:52 1012

原创 C++(十五):模板

模板模板1.函数模板1.1 语法1.2 范例1.3 自动类型推导与显式指定类型1.4 注意事项模板C++的另一种编程思想是泛型编程,其主要利用的技术就是模板。模板树妖分为两类: 函数模板 和 类模板 。1.函数模板所谓函数模板,就是一个返回值和形参类型不用具体指定的通用函数,是一个虚拟的类型。其目的是提高代码的复用性,将类型参数化。1.1 语法template<typename T>函数声明或者定义其中,template——声明创建模板typename——表明其后面的符

2021-11-19 19:54:20 344

原创 C++(十四):增删改查之职工系统

增删改查之职工系统

2021-11-14 14:31:52 812 1

原创 C++(十三):文件操作

文件操作文件操作的话得先包含头文件。操作文件的三个流:ofstream:写操作ifstream:读操作fstream:读写操作1. 文本文件1.1 写文件步骤如下:包含头文件创建流对象 ofstream ofs;打开文件 ofs.open(“文件路径”,打开方式);写数据 ofs << “data”;关闭文件 ofs.close();文件打开方式:打开方式解释ios::in为了读文件而打开文件ios::

2021-11-14 12:28:36 2275

原创 C++(七):简单通讯录系统

利用指针,引用和结构体制作简单通讯录系统功能介绍我们的通讯录有以下功能:1.通讯录菜单程序

2021-11-14 12:27:57 167

原创 C++(八):Class

Class

2021-11-14 12:27:42 2180

原创 C++(五):const

const指针const修饰 * 号,则不能把解引用作为左值;const修饰指针名,则不能把指针名作为左值。const修饰指针——常量指针在 const修饰指针的情况下,指针的指向可以更改,但是不能通过指针去改变它所指向的变量的值。int a = 10;int b = 20;const int *p = &a;//const修饰的指针,常量指针p = &b;//正确,常量指针可以更改其指向*p = 30; //错误,无法通过解引用修改其指向的变量的值const修饰常

2021-11-14 12:27:22 224

原创 C++(六):指针与数组

指针与数组int arr[] = {1,3,5,6,7,2,3,9,0,4};int *p = arr;cout << *p << endl;//结果是1,即arr[0]cout << *(p+1) << endl;//结果是3,即arr[1]cout << p[2] << endl;//结果是5,即arr[2]在上述代码中,数组的名称 arr 等价于&(arr[0]),是一个指向数组首元素的地址,因此可以直接初始

2021-11-14 12:27:13 183

原创 C++(九):运算符重载

运算符重载对于内置的数据类型,编译器知道如何运算,但是对于自定义的类型,编译器并不知道如何进行运算,因此需要自定义运算符的功能,这就是运算符重载。加号运算符重载使用 operator+ 成员函数实现运算符 + 的重载。其本质上是 p3 = p1 + p2; == p3 = p1.operator+(p2);class ppp{public: ppp operator+(const ppp &p); ppp(); ppp(int a, int b);public : int m

2021-11-14 12:26:53 171

原创 C++(十):Friend

友元对于私有权限的成员,我们无法再类外访问。但是我们依然可以通过友元的方式进行访问。1.全局函数作为友元在下面的全局函数中,我想要访问ppp类的私有权限的成员m_b,为此我必须在类内声明一下这个全局函数可以访问,即friend关键词那一行。class ppp{ friend void f2ppp(ppp &p);//主要代码行public: ppp() { m_a = "aa"; m_b = "bb"; }public: string m_a;private:

2021-11-14 12:26:42 29

原创 C++(十一):继承

继承继承用于减少重复代码。继承的语法:class 子类 : 继承方式 父类不同的继承方式影响父类中的成员的权限在子类中的权限。如果是公共继承,则父类中成员的权限不变继承到子类中,但是子类不能访问父类的隐私权限成员;在类外可以访问继承的共有权限成员,其余不行;如果是保护继承,则父类中成员的权限提升继承到子类中,起步保护权限,但是子类不能访问父类的隐私权限成员;如果是隐私继承,父类中成员全部到子类中变成隐私权限。查看对象模型想要查看类中的成员和占用大小,尤其是继承之后的子类的布局,可以使用命令

2021-11-14 12:26:31 205

原创 C++(十二):多态

多态动态多态动态多态的满足条件:存在继承关系;子类需要重写父类的虚函数。虚函数:父类的函数在定义的时候在返回类型前面添加 virtual 关键字。重写:指的是在子类编写新的函数,但是返回类型、函数名、形参列表完全相同,函数体可以不同。动态多态的使用:利用父类的指针或者引用来执行子类的对象。动态多态的底层...

2021-11-13 22:41:01 106

原创 C++(四):函数

四、函数函数的使用以一个求阶乘的函数为例讲述如何编写和使用函数。1.头文件,函数的声明我们提倡 分离式编译 (separate compilation) ,因此我们会将程序分割到数个文件中。头文件包含了该函数的声明。#ifndef FACT_H#define FACT_H#include <iostream>using namespace std;unsigned int fact(int a);#endiffact.h是我们定义的头文件的名称。其中ifndef和en

2021-11-13 22:40:32 1638

原创 C++(三):变量、初始化

三、运算在明白了C++有哪些数据类型以及类型会作何转换之后,需要知道对这些数据类型可以做哪些相关的运算,以及各个运算的优先级。变量我们使用 变量 是在对一段存储空间进行命名以供程序操作。变量需要知道其数据类型。前面提过,数据类型为每一个变量明确了占据空间的大小和布局方式,也定义了其能参与的所有运算。变量(variable) 和 对象(object) 一般可以互换使用.变量的初始化变量的定义没什么特殊的,在此也不做过多的记录。但是在定义变量的时候,我们往往需要明确变量的类型同时为其初始化,而这是一

2021-11-13 22:39:20 98

原创 C++(二):类型转换

二、类型转换关于类型转换的内容多且杂,再此罗列一些目前遇到的与之相关的内容。包含了算术转换、隐式类型转换和强制转换。算术转换 (arithmetic conversion)一些赋值时的转换规则。对于布尔类型而言,将非布尔类型的值赋给它时,若初始结果为0则结果为false,否则位true;反之,布尔值赋给非布尔类型时,初始值为false则结果为0,否则为1.对于整型而言,若将浮点数赋给整型时会损失精度,向0取整;反之,将整数赋给浮点数类型时则将小数部分记为0。对于无符号类型而言,当赋给的值超过其

2021-11-13 22:39:00 125

原创 C++(一):数据类型

Prime C++ 学习阶段汇总(一)一、数据类型C++内置了一些基本数据类型,包括了算数类型和空类型。定义类型的目的是区分不同的数据,合理分配相应的内存大小。算术类型 (arithmetic type)包括整型和浮点型。类型含义最小尺寸bool布尔类型未定义char字符8位short短整型16位int整型32位long长整型32位long long长长整型64位float单精度浮点数6位有效数字doub

2021-11-13 22:38:24 493

空空如也

空空如也

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

TA关注的人

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