自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C/C++实现快排算法

1.快排的实现逻辑:先从数列中取出一个数作为基准数(通常取第一个数)。 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 再对左右区间重复第二步,直到各区间只有一个数。2.示意图3.C/C++代码实现void quickSort(int *array, int left, int right){ if(left < right) {...

2019-05-16 21:17:25 29828 11

原创 C++实现基于数组+链表的简易版HashMap

1.HashMap原理示意图2.C++代码实现#include <iostream>using namespace std;typedef struct HashNode{ int val; struct HashNode* next;}HashNode;class hash_map {public: hash_map(); hash_map(c...

2019-09-27 16:36:33 629 1

原创 C++实现迪杰斯特拉算法

#include <iostream>#include <vector>#include <limits>using namespace std;typedef struct _MGraph{ int vertex_num; vector<vector<int>> arcs;}MGraph;void Dijkst...

2019-09-05 17:15:04 1334 1

原创 2020秋招华为笔试题-买钉子

1.题目描述2.代码实现主要思路:类似零钱兑换#include <iostream>#include <vector>using namespace std;class Solution {public: int buyNails(vector<int>& nails, int count) { vec...

2019-09-05 14:51:29 2431

原创 C语言实现循环队列的头部插入、尾部插入、头部出队、尾部出队

#include <stdio.h>#include <stdbool.h>#include <stdlib.h>typedef struct _queue{ int *buffer; unsigned int front; unsigned int rear; unsigned int size;}queue;...

2019-09-04 14:15:30 2685

原创 Leetcode-55 跳跃游戏

1.题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的...

2019-09-01 14:31:23 95

原创 动态规划解决01背包问题

/* @param weights: 物品的重量 @param value:物品的价值 @param capacity:背包的总容量*/int KnapSack_01(vector<int> weights, vector<int> value, int capacity){ int size = weights.size(); if (si...

2019-08-17 19:15:06 369

原创 LeetCode367-有效的完全平方数

1.题目描述给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:False2.代码实现class Solution {public: bool isPerfectSquare(i...

2019-07-13 19:43:05 88

原创 LeetCode152-乘积最大子序列

1.题目描述给定一个整数数组nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。来源:力扣(LeetCode)链接:https://leetcode...

2019-07-05 15:18:48 173

原创 LeetCode88-合并两个有序数组

1.题目描述给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = ...

2019-07-02 21:51:48 169

原创 LeetCode125-验证回文串

1.题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串示例:示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false示例 3:输入: "0P"输出: false2.解题思路...

2019-06-25 22:03:05 95

原创 C++类模板实现双链表基本操作

#include <iostream>using namespace std;template<typename T>struct DuLNode{ T val; DuLNode* prior; DuLNode* next;};template<typename T>class DuList{public: DuList(); ...

2019-06-15 10:57:35 594

原创 C语言实现memcpy

void* memcpy(void* dest, void* src, unsigned count){ if(dest == NULL || src == NULL) return NULL; char *pdest = (char*)dest; char *psrc = (char*)src; while(count--) { ...

2019-06-11 09:42:21 183

原创 LeetCode120- 三角形最小路径和(动态规划)

1.题目描述给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很...

2019-05-31 11:21:09 135

原创 C语言双指针实现翻转字符串

char* reverseString(char* str){ if(str == NULL) return NULL; char* left = str; char* right = str + strlen(str) - 1; while(left < right) { char tmp = *lef...

2019-05-30 19:50:04 620

原创 LeetCode637-二叉树的层平均值

1.题目描述给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。示例 1:输入: 3 / \ 9 20 / \ 15 7输出: [3, 14.5, 11]解释:第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].注意:节点值的范围在32位有符号整数范围内。2.代码实现/...

2019-05-30 08:25:33 153

原创 C语言实现常见的排序算法

1.冒泡排序void popSort(int *array, int len){ for(int i = 0; i < len; i++) { for(int j = 0; j < len - i - 1; j++) { if(array[j] > array[j + 1]) ...

2019-05-29 09:26:25 372

原创 LeetCode8-字符串转换整数 (atoi)

1.题目描述请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符...

2019-05-28 15:48:31 160

原创 strcpy与strcmp的C语言实现

char* strcpy(char* des, char* src){ if(des == NULL || src == NULL) return NULL; char* p = des; while(*p++ = *src++); return des;}int strcmp(const char* des, char const *sr...

2019-05-28 10:33:19 166

原创 LeetCode21- 合并两个有序链表

1.题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例输入:1->2->4, 1->3->4输出:1->1->2->3->4->42.解题思路寻找新链表的头结点ListNode* head = nullptr;if(l1->val <= ...

2019-05-27 17:08:51 139

原创 LeetCode92-反转链表 II(C++实现)

1.题目描述反转从位置m到n的链表。请使用一趟扫描完成反转。说明:1 ≤m≤n≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL2.代码实现/** * Definition for sing...

2019-05-26 21:41:55 291

原创 LeetCode130-被围绕的区域(广度优先搜寻)

1.题目描述给定一个二维的矩阵,包含'X'和'O'(字母 O)。找到所有被'X'围绕的区域,并将这些区域里所有的'O'用'X'填充。示例1输入:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 '...

2019-05-22 12:00:22 272

原创 广度优先搜寻与深度优先搜寻代码模板

1.广度优先搜寻#include <iostream>#include <queue>using namespace std;#define MAXROW 10#define MAXLINE 10typedef struct _Point{ int _x; int _y;}Point;Point prePonit[MAXROW][MAX...

2019-05-21 20:54:42 229

原创 C++模板实现单链表基本操作

#ifndef LINKLIST_H#define LINKLIST_H#include <iostream>using namespace std;template <typename T>struct Node{ T data; struct Node* next;};template <typename T>class...

2019-05-21 20:45:13 992

原创 LeetCode300-最长上升子序列(C++实现)

1.题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。2.C++代码实现2.1 动态规划(复杂度:O())class Solution {public: int lengthOfLIS(vector<in...

2019-05-21 20:39:50 829

原创 LeetCode257-二叉树的所有路径(C++递归实现)

1.题目描述给定一个二叉树,返回所有从根节点到叶子节点的路径。说明:叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->32.C++代码实现(递归)/** * Defini...

2019-05-21 10:13:04 460

原创 LeetCode61-旋转链表(C++实现)

1.题目描述给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。2.示例示例1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右...

2019-05-19 18:23:26 593

原创 LeetCode63-不同路径II(C++实现)

1.题目描述一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用1和0来表示。说明:m和n的值均不超过 100示例1:输入:[...

2019-05-17 17:06:41 467

原创 LeetCode100-相同的二叉树(C++实现)

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */cla...

2019-05-17 16:33:51 184

原创 LeetCode67-二进制求和(C++实现)

1.题目描述给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-b...

2019-05-16 21:39:38 793 1

原创 C++模板实现二叉树基本操作

#ifndef BINARYTREE_H#define BINARYTREE_H#include <iostream>#include <stack>#include <queue>using namespace std;template <typename T>struct btNode{ T _data; s...

2019-05-16 21:29:14 951

空空如也

空空如也

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

TA关注的人

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