自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 876.链表的中间结点

代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(ne

2021-11-02 19:37:46 101

原创 557.反转字符串中的单词Ⅲ

代码class Solution {public: string reverseWords(string s) { int begin = 0; int end = 0;//双指针,均从第一个元素开始 for (int i = 0; i <= s.size(); ++i)//从头到尾扫描 { if (s[i] == ' ' || s[i] == '\0')//如果扫描到空格或扫描到整个句子的末

2021-11-02 19:11:47 107

原创 344.反转字符串

代码class Solution {public: void reverseString(vector<char>& s) { int begin = 0; int end = s.size()-1; while (begin < end) { char temp = s[end]; s[end] = s[begin];

2021-10-31 21:04:56 85

原创 167.两数之和Ⅱ

代码class Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { //一般双指针 //for (int i = 0; i < numbers.size(); ++i) // for (int j = i + 1; j < numbers.size(); ++j) // {

2021-10-31 19:31:20 84

原创 189.旋转数组

代码class Solution {public: void rotate(vector<int>& nums, int k) { if(nums.size()>0||k>0) { k = k%nums.size();//特殊情况,k>N倍的nums.size() /*int* temp = new int[k];//动态分配内存,用于存放nums中的后k个元素

2021-10-31 15:53:31 69

原创 977.有序数组的平方

代码class Solution {public: vector<int> sortedSquares(vector<int>& nums) { //先平方再排序 //平方 for(int i=0;i<nums.size();++i) nums[i]=nums[i]*nums[i];//平方 /*//冒泡排序:升序,双指针 int te

2021-10-30 22:06:50 146

原创 278.第一个错误的版本

代码// The API isBadVersion is defined for you.// bool isBadVersion(int version);class Solution {public: int firstBadVersion(int n) { if(n<=0) return -1; int low=1; int high=n; int mid=0; whi

2021-10-30 21:35:48 76

原创 35.搜索插入位置

代码class Solution {public: int searchInsert(vector<int>& nums, int target) { if(nums.size()<=0) return -1; int low=0; int high=nums.size()-1; int mid=0; while(low<=high)

2021-10-30 21:32:42 75

原创 704.二分查找

704.二分查找代码class Solution {public: int search(vector<int>& nums, int target) { if(nums.size()<=0) return -1; int low=0; int high=nums.size()-1; int mid=0; while(low<=high)

2021-10-28 21:37:42 70

原创 二叉树的(使用链表)创建及(递归和非递归)遍历

一、使用链表前序遍历创建二叉树(递归)步骤创建二叉树函数,以根节点作为返回值;创建一棵二叉树结点,并初始化;为此二叉树结点申请存储空间;向数据域输入元素数据;考虑终止条件:当输入特殊字符’0’时,停止创建,即二叉树元素输入完毕;循环体中:访问左子树(调用函数自身);访问右子树(调用函数自身);循环体外,返回根节点。二、二叉树的遍历递归:前序、中序、后续前序递归遍历:若被遍历的二叉树非空,则:访问根结点;以前序遍历原则遍历根结点的左子树;以前序遍历原则遍历根结点的右子树。

2020-11-10 14:47:04 1025

原创 使用单向链表进行交换排序

思路1、使用单向链表;2、排序时只交换节点中的元素,不改变节点的位置。3、排序采用冒泡排序的方法。重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。注意:<1> 每经过一轮的排序,一个最大的元素被“浮”到对应的位置。随之,下一次比较的终点也需要向前移一个元素。<2> 当正数第二个元素被确定的时候,冒

2020-11-10 14:35:04 784

原创 1.Qt类的封装

C++是面向对象的语言,即封装类——将对象的数据、行为等等封装在一起。C++和Qt都提供了基类,但在使用过程中往往是不够的,因此,面向对象的编程思想是:运用现有的类封装自己的类,以便使用,也是C语言中的模块化思想。举例说明:查找对话框main.cpp#include "finddialog.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication app(argc, argv);

2020-10-08 19:28:19 2267

原创 1.整数反转 Reverse Integer [7]

题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意本题需要注意转换后的结果是否溢出。借住了头文件limist.h中的定义:#define INT_MAX 2147483647#define INT_MIN (-INT_MAX - 1)代码class Solution{ public: int reverse(int x){ if(x/10==0) return x; int res=0;//用来存放

2020-10-03 20:34:42 95

原创 3.最后一个单词的长度 Length of Last Word [58]

题目给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明: 一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。思路用ifLast去记录是否已经读完最后一个单词,如果是就break出来。遇到空格直接continue,直到遇到字母开始记录长度。代码class Solution {public: int lengthOfLastWord(stri

2020-10-03 18:44:58 77

原创 2.最长公共前缀 Longest Common Prefix [14](纵向扫描法)

题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。思路纵向扫描时,从前往后遍历所有字符串的每一列,比较相同列上的字符是否相同,如果相同则继续对下一列进行比较,如果不相同则当前列不再属于公共前缀,当前列之前的部分为最长公共前缀。代码class Solution{ public: string longestCommonPrefix(vector<string>& strs){ if(strs.size()

2020-10-03 17:06:52 169

原创 1.实现 strStr() Implement strStr() [28] (两种算法)

题目给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。1 库函数法

2020-10-03 15:35:26 62

原创 3.删除排序数组中的重复项② Remove Duplicates from Sorted Array [80]

题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。思路快指针:遍历整个数组。慢指针:记录可以覆写数据的位置。算法class Solution{ public: int removeDuplicayes(vector<int>& nums){ if(nums.size()<=2)

2020-09-28 19:28:50 72

原创 2.删除排列数组中的重复项 Remove Duplicates from Sorted Array[26]

题目给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。思路和删除元素[27]较像。使用双指针来删除重复元素。算法class Solution{ public: int removeDuplicayes(vector<int>& nums){ if(nums.size()==0)

2020-09-28 16:00:04 57

原创 1.移除元素 Remove Element [27]

题目给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间(空间复杂度)并 原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。提示使用双指针。题目中“元素顺序可以改变”。解决方案**方法:**双指针。**思路:**保留两个指针i和j,其中i是慢指针,j是快指针。算法:class Solution{ public: int r

2020-09-28 14:45:56 75

空空如也

空空如也

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

TA关注的人

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