
手撕算法
Hu.先森
这个作者很懒,什么都没留下…
展开
-
动态规划
https://juejin.im/post/5a29d52cf265da43333e4da7http://hawstein.com/2013/03/26/dp-novice-to-advanced/原创 2020-04-14 15:07:20 · 196 阅读 · 0 评论 -
剑指offer——礼物的最大价值(C++)
int GetMaxValue(vector<vector<int> > &arr){ if(arr.size() == 0||arr[0].size() == 0) return 0; int m = arr.size(); int n = arr[0].size(); vector<vector<int> > dp(m,...原创 2020-04-10 11:55:46 · 331 阅读 · 0 评论 -
直接插入排序——C++
//直接插入排序算法void InsertSort(int a[],int n) { for (int i = 1; i < n; i++) { if (a[i] < a[i - 1]) { int j = i - 1; int tmp = a[i]; while (tmp < a[j]) { a[j + 1] = a[j]; j--;...原创 2020-04-04 20:10:38 · 228 阅读 · 0 评论 -
寻找链表的环(C++)
//寻找链表的环ListNode* FindLink(ListNode* head){ if(head == nullptr) return nullptr; ListNode* slow = head->next; if(slow == nullptr) return nullptr; ListNode* fast = ...原创 2020-04-04 19:19:16 · 495 阅读 · 0 评论 -
重建二叉树(C++)
//重建二叉树//例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。struct TreeNode{ int val; TreeNode* left; TreeNode* right;};//重建二叉树TreeNode* ReConstructTree(vector<int>...原创 2020-04-04 19:18:03 · 2677 阅读 · 0 评论 -
从上至下打印二叉树(C++)
struct TreeNode{ int val; struct TreeNode* left; struct TreeNode* right; TreeNode(int x): val(x), left(NULL),right(NULL){ }};vector<int> CenShowTree(TreeNode* pRo...原创 2020-04-04 19:16:48 · 480 阅读 · 0 评论 -
归并排序(C++)
void Merge(int arr[],const int left,const int right,const int middle){ int temp[right-left+1]; int i = left; int j = middle + 1; int k = 0; int m = 0; while(i <= middle &a...原创 2020-04-04 19:15:43 · 134 阅读 · 0 评论 -
冒泡排序(C++)
void BubbleSort(vector<int> &arr){ if(arr.size() == 0) return; for(int i = 0; i < arr.size();i++) for(int j = 0;j < arr.size()-i;j++) { if...原创 2020-04-04 19:06:06 · 148 阅读 · 0 评论 -
二分查找(C++)递归版本+循环版本
#include <iostream>#include <vector>#include <queue>using namespace std;//循环int BinarySearch(vector<int> arr,int left,int right,int target){ while(left <= right)...原创 2020-04-04 19:03:59 · 350 阅读 · 0 评论