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

原创 二分查找法

二分查找推荐文章文章目录简单二分[35. 搜索插入位置](https://leetcode-cn.com/problems/search-insert-position/)[34. 在排序数组中查找元素的第一个和最后一个位置](https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/)简单二分35. 搜索插入位置1.需要特判class Solution {public:

2021-09-14 11:19:52 102 1

原创 单例模式实现

1,饿汉模式class singlePattern {private: singlePattern() {}; static singlePattern* p;public: static singlePattern* instance(); class CG { public: ~CG() { if (singlePattern::p != nullptr) { delete singlePattern::p; singlePattern::p = nullptr

2021-09-11 09:42:44 112

原创 剑指 Offer 25. 合并两个排序的链表

剑指 Offer 25. 合并两个排序的链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */1.&&写法class Solution {public: ListNode* mergeTwoLists(ListNo

2021-09-10 17:51:48 95

原创 剑指 Offer 24. 反转链表

剑指 Offer 24. 反转链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseList(ListNode* head) { L

2021-09-10 17:10:09 83

原创 剑指 Offer 22. 链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */1.快慢指针class Solution {public: ListNode* getKthFromEnd(ListNode* hea

2021-09-10 17:06:13 59

原创 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

剑指 Offer 21. 调整数组顺序使奇数位于偶数前面1.辅助数组class Solution {public: vector<int> exchange(vector<int>& nums) { vector<int> odd; //保存奇数 vector<int> even; //保存偶数 for (int i = 0; i < nums.size(); ++i) {

2021-09-10 17:02:15 63

原创 剑指 Offer 18. 删除链表的节点

剑指 Offer 18. 删除链表的节点/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* deleteNode(ListNode* head, int val) {

2021-09-10 16:18:16 65

原创 剑指 Offer 17. 打印从1到最大的n位数

剑指 Offer 17. 打印从1到最大的n位数class Solution {public: vector<int> printNumbers(int n) { int range = 1; while (n--) range *= 10; vector<int> res(range - 1); for (int i = 0; i < res.size(); ++i)

2021-09-10 15:13:08 59

原创 剑指 Offer 14- II. 剪绳子 II

剑指 Offer 14- II. 剪绳子 II1.贪心class Solution {public: int cuttingRope(int n) { assert(2 <= n && n <= 1000); if (n <= 3) return n - 1; long res = 1; while (n > 4) { n -= 3; res

2021-09-10 15:09:52 57

原创 剑指 Offer 14- I. 剪绳子

剑指 Offer 14- I. 剪绳子1.动态规划class Solution {public: int cuttingRope(int n) { vector<int> dp(n + 1); dp[2] = 1; for (int i = 3; i <= n; ++i) for (int j = 1; j < i; ++j) dp[i] = max(dp[i],

2021-09-10 15:03:00 120

原创 剑指 Offer 13. 机器人的运动范围

剑指 Offer 13. 机器人的运动范围1.深搜class Solution {private: int count = 0;public: int movingCount(int m, int n, int k) { vector<vector<bool>> visited(m, vector<bool>(n, false)); dfs(m, n, k, 0, 0, visited); retu

2021-09-10 14:50:33 69

原创 二叉搜索树实现

template <typename Key, typename Value>class BST {private: struct Node { Key key; Value value; Node *left; Node *right; Node(Key key, Value value) { this->key = key; this->value = value; this->left = this->right = n

2021-09-07 17:43:10 76

原创 C++智能指针实现

文章目录atuo_ptr实现atuo_ptr实现 template <class _Ty> class auto_ptr { public: // explicit auto_ptr(_Ty *_P = 0) : _Ptr(_P), _Owns(_P != 0) {} auto_ptr(auto_ptr<_Ty>& _Y) { _Ptr = _Y._Ptr; _Owns = _Y._Owns; _Y._Owns = false;

2021-09-07 16:47:28 69

原创 剑指 Offer 15. 二进制中1的个数

剑指 Offer 15. 二进制中1的个数1.循环32次class Solution {public: int hammingWeight(uint32_t n) { int count = 0; for (int i = 0; i <= 31; ++i) { if ((n >> i) & 1) ++count; } return

2021-09-07 09:01:23 71

原创 剑指 Offer 12. 矩阵中的路径

剑指 Offer 12. 矩阵中的路径class Solution {private: int row, col;public: bool exist(vector<vector<char>>& board, string word) { row = board.size(); col = board[0].size(); for (int i = 0; i < board.size(); ++i)

2021-09-07 08:54:29 62

原创 剑指 Offer 11. 旋转数组的最小数字

剑指 Offer 11. 旋转数组的最小数字class Solution {public: int minArray(vector<int>& numbers) { int l = 0, r = numbers.size() - 1; while (l < r) { int mid = (r - l) / 2 + l; if (numbers[mid] > numbers[r])

2021-09-07 08:34:57 64

原创 剑指 Offer 07. 重建二叉树

剑指 Offer 07. 重建二叉树/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* bu

2021-09-07 00:26:10 67

原创 剑指 Offer 06. 从尾到头打印链表

剑指 Offer 06. 从尾到头打印链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: vector<int> reversePrint(ListNode* head)

2021-09-07 00:04:40 64

原创 剑指 Offer 05. 替换空格

剑指 Offer 05. 替换空格class Solution {public: string replaceSpace(string s) { int space_nums = 0; for (int e : s) if (e == ' ') ++space_nums; int old_size = s.size(); s.resize(s.size() + space_

2021-09-07 00:01:46 57

原创 剑指 Offer 04. 二维数组中的查找

剑指 Offer 04. 二维数组中的查找class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { if (matrix.size() == 0 || matrix[0].size() == 0) return false; int r = 0, c = matrix[0].siz

2021-09-07 00:01:33 64

原创 剑指 Offer 24. 反转链表

剑指 Offer 24. 反转链表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseList(ListNode* head) { L

2021-09-06 23:38:05 52

原创 剑指 Offer 10- II. 青蛙跳台阶问题

剑指 Offer 10- II. 青蛙跳台阶问题class Solution {public: int numWays(int n) { if (n == 0) return 1; if (n <= 2) return n; int dp[2] = {1, 2}; int tmp; for (int i = 3; i <= n; ++i) { tmp = dp[

2021-09-06 23:34:06 61

原创 剑指 Offer 03. 数组中重复的数字

剑指 Offer 03. 数组中重复的数字1.哈希计数class Solution {public: int findRepeatNumber(vector<int>& nums) { unordered_set<int> uset; for (int i = 0; i < nums.size(); ++i) { if (uset.find(nums[i]) == uset.end())

2021-09-06 23:27:17 104

原创 剑指 Offer 09. 用两个栈实现队列

剑指 Offer 09. 用两个栈实现队列class CQueue { stack<int> st_in, st_out;public: CQueue() { while (!st_in.empty()) st_in.pop(); while (!st_out.empty()) st_out.pop(); } void appendTail(int value) {

2021-09-06 23:15:11 61

原创 剑指 Offer 10- I. 斐波那契数列

剑指Offer 10- Iclass Solution {public: int fib(int n) { if (n == 0) return 0; if (n == 1) return 1; if (n == 2) return 1; int dp[2] = {1, 1}; int tmp; for (int i = 3; i <= n; ++i) { tmp =

2021-09-06 21:45:21 60

原创 剑指 Offer16.数值的整数次方

剑指offer16.数值的整数次方1.暴力法class Solution {public: double myPow(double x, int n) { double res = 1; if (n < 0) { x = 1 / x; n = -n; } for (int i = 0; i < n; ++i) res *= x; return res; }};2.二分法class Solution {public: double

2021-09-06 21:08:54 77

原创 二分查找法

文章目录二分查找二分简单题二分查找二分简单题704.二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。class Solution {public: int search(vector<int>& nums, int target) { int l = 0, r = nums.size() - 1; whi

2021-09-06 11:20:09 115

原创 快排的实现

1.写法最简单template <typename T>void quickSort(T arr[], int low, int high) { //这是左闭右闭的区间 if (low >= high) return; int i = low, j = high; int base = arr[low]; while (i < j) { while (arr[j] >= base && i < j) j--; while (

2021-09-06 09:35:54 120

原创 希尔排序实现

template <typename T>void shellSort(T arr[], int n) { // 计算 increment sequence: 1, 4, 13, 40, 121, 364, 1093... int h = 1; while (h < n / 3) h = 3 * h + 1; while (h >= 1) { for (int i = h; i < n; i++) { T e = arr[i]; int

2021-09-06 09:16:22 120

原创 归并排序的实现

#include <iostream>#include <vector>#include <cassert>#include <ctime>using namespace std;template <typename T>void __merge(T arr[], int _l, int mid, int r) { T *aux = new T[r - _l + 1]; for (int i = _l; i <= r; +

2021-09-06 09:08:58 77

原创 十进制转二进制字符串

int main() { vector<int> v; int n; cin >> n; while (n != 0) { v.push_back(n % 2); n /= 2; } reverse(v.begin(), v.end()); for (int e : v) cout << e << " "; cout << endl;}

2021-09-05 23:03:57 171

原创 堆排的实现以及优化

测试

2021-09-05 16:15:15 70

空空如也

空空如也

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

TA关注的人

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