自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 229 求众数

给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。class Solution {public: vector<int> majorityElement(vector<int>& nums) { vector<int> ans;//其实可以只开辟2个空间,总不至于有2个数都超过1/3吧 sort(nums.begin(), nums.end());//先排序 int count = 0, sample = 0, i

2021-10-22 13:27:36 274

原创 LeetCode405 数字转换为十六进制数

给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。LeetCode405 数字转换为十六进制数class Solution {public: string getChar(int a){//大于等于10的话10对应a,11对应b,以此类推.... string str = ""; if (a < 10){ return str+(char)(a + '0'); } else{ return str + (char)(a -

2021-10-13 10:05:37 152

原创 字符串中的单词数

题目来源:LeetCode 434. 字符串中的单词数统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: “Hello, my name is John”输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 “Hello,” 算作 1 个单词。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/number-of-segments-in-a-string著作

2021-10-07 09:10:59 166

原创 顺时针旋转矩阵

假设矩阵为1 2 34 5 67 8 9旋转之后,变为7 4 18 5 29 6 3class Solution {public: vector<vector<int>> rotateMatrix(vector<vector<int> > mat, int n) { int N = mat.size(); vector<vector<int>> v; stack<int&gt

2021-10-02 16:10:48 186

原创 链表的奇偶重排

给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出。注意是节点的编号而非节点的数值。#include<iostream>#include<stack>using namespace std;struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(nullptr) {} };class Solution {public:

2021-10-02 12:46:23 113

原创 第一个只出现一次的字符

主要思路呢就是把出现过的相同的字符在辅助数组arr中标记出来,arr数组元素初始化为0,标记后为1class Solution {public: int FirstNotRepeatingChar(string str) { int arr[10000] = { 0 }; for (int i = 0; i < str.length(); i++){ if (!arr[i]){//如果字符没被标记,就进行比较 char* p = &str[i]; for (

2021-09-22 20:52:18 68

原创 带头结点的链表的排序

对链表的排序,思路如下1.将头结点连着第一个链表和链表的后续其他部分断开2.将头结点的下下个结点指向NULL3.取出断开后的另一个链表中的第一个元素p,并将其依次与第一个链表的各个元素作比较,直到找到符合条件的位置位置,再通过pre指针完成插入操作4.原链表的头指针的next域置空,并将原链表的头结点L指向原链表的最后一个元素,完成排序void LinkListSort(LinkList &L){ LNode *p = L->next, *pre, *r = p->next

2021-09-12 14:12:57 2807 4

原创 链表的原地重置

链表的原地逆序相当于将原来的链表按尾插法重新接到头结点之后void LinkListReverse(LinkList &L){ LNode *s = L->next, *temp; //s指向要操作的结点,temp用来指向要操作的结点的下一个结点 L->next = NULL;//断开头结点 while (s) { temp = s->next; s->next = L->next; L->next = s; s = temp; }

2021-09-12 12:56:23 326

原创 将数组中的两个线性表(分别有m和n个元素)互换位置,每个线性表内部个元素的相对位置关系不变

将数组中的两个线性表(分别有m和n个元素)互换位置,每个线性表内部个元素的相对位置关系不变int main(){ DataType arr[m + n]; InitArr(arr,m+n); int i = 0, j = m; while (i < (m-1)/2)//先逆置第一个数组中的m个元素 { DataType temp = arr[i]; arr[i] = arr[m - 1 - i]; arr[m - 1 - i] = temp; i++; } while

2021-08-31 10:59:12 638 2

原创 顺序表中删除所有值重复的元素

void SeqListDeleteSameElem(struct SeqList* sq){ int num = 0; for (int i = 1; i < sq->length; i++) { if (sq->data[i] == sq->data[i - 1]) { num++; } else { sq->data[i - num] = sq->data[i];//往前移动num个位置 } } sq->leng

2021-08-30 21:07:44 1239 2

原创 删除顺序表中的某个元素

#include<iostream>#include<ctime>using namespace std;#define DataType int#define MAXN 100struct SeqList{ DataType data[MAXN]; int length;};void GetRandam(struct SeqList* sq){ srand((unsigned int)time(NULL)); for (int i = 0; i &lt

2021-08-30 16:41:19 462 1

原创 将顺序表的元素逆置

//将顺序表的元素逆置#include<iostream>using namespace std;#define DataType int#define MAXN 10struct SeqList{ DataType data[MAXN]; int length;};void SeqListReverse(struct SeqList* sq){ int left, right; left = 0; right = sq->length - 1; whil

2021-08-30 15:36:32 406

原创 顺序表删除最小的元素

//从顺序表中删除具有最小的元素并由函数返回被删元素的值,空出的位置由最后一个元素填补,若顺序表为空,则显示出错并退出运行顺便复习一下随机数的生成#include<iostream>#include<ctime>//这里为了验证效果,用了随机数生成,(才不是我偷懒)#define DataType int#define MAXN 10using namespace std;接下来创建个顺序表结构体struct SeqList{ DataType data[MA

2021-08-30 14:36:02 1115

原创 输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。

//输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。#include <stdio.h>int main(){int m = 0, n = 0, i = 0, j = 0, arr1[100] = { 0 }, arr2[100] = { 0 }, arr3[200] = { 0 }, k = 0, t = 0;//这里直接新建一个数组来存放结果数列scanf("%d %d", &n, &m);for (i = 0; i < n; i++){sc

2021-02-24 15:32:24 3485 1

原创 正数的排序

//这道题来自牛客网,思路有些讨巧故拿来代码分享//老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。//但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。#include <stdio.h>int main(){int n = 0, i = 0, x = 0, y = 0;int arr[100000] = { 0 };while (scanf("%d", &n) != EOF){for (i = 0; i < n; i

2021-02-08 20:47:22 135

空空如也

空空如也

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

TA关注的人

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