自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Uniapp使用copy-webpack-plugin报错

先说结论:版本问题!改用5.0.0的版本即可情况说明:为了让uniapp编译的时候将小程序的云函数也打包进去,网上都推荐使用copy-webpack-plugin每次编译时将整个云函数文件夹复制到dist文件内(不是,网上都是同一篇)但是当我安装完改插件后却报错没安装webpack,将webpack也安装之后还是报错,而且错误不明,看上去是源码内部没有将错误抛出来尝试多次无果后改其源码终于得到报错信息,patterns的类型错误,但是官网的介绍方法中根本没有patterns这个参数,在npm的介绍

2020-09-28 14:02:28 3070 2

原创 微信小程序自己开通云函数

创建小程序的时候没有选择云服务之后怎么开通云函数呢?其实在project.config.json中配置一下就好了自己新建一个文件夹cloudfunctions,在文件夹上右键就可以使用云函数了...

2020-04-03 10:43:00 763

原创 Nuxt.js重构Vue项目 解决SEO问题

从头搭建一个服务端渲染的应用是相当复杂的。幸运的是,我们有一个优秀的社区项目 Nuxt.js 让这一切变得非常简单。Nuxt 是一个基于 Vue 生态的更高层的框架,为开发服务端渲染的 Vue 应用提供了极其便利的开发体验。更酷的是,你甚至可以用它来做为静态站生成器。推荐尝试。上面这段是Vue官方给出的服务器渲染的一种方案。原项目是一个个人网站,直接用Vue框架写的,前后分离封装性好利于维护...

2020-03-21 16:34:36 3155

原创 阿里云Ubuntu安装Django+Nginx+uwsgi避开所有坑

Python环境Python升级问题Ubuntu默认安装了Python2.7和Python3.5,其中因为一些原因没有运行起来Django,我以为是Python版本问题,后来查阅资料发现3.5几乎兼容所有Django的版本,但是不支持Django3,所以不用升级可以直接安装Django2。升级Python3.7的之后出现某个库缺失的报错,安装完成之后又重新编译了一遍,由于忘记清理之前的安装包...

2020-03-19 21:11:16 208

原创 阿里云Ubuntu Node服务无法访问的问题 巨坑!!!!

找了这么久我都要哽咽了┭┮﹏┭┮首先就想到了阿里云的安全组,去开放了端口之后,并没有什么卵用以为node版本问题,又重装成了和本地一样的版本在网上找到的答案基本上都是没有阿里云的安全组的问题,我真的欲哭无泪!!!重点来啦,Ubuntu自带的防火墙iptables有问题!关掉就OK了uwf disable...

2020-03-07 20:32:28 193

原创 初识Vue

安装node简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。安装WebpackWebpack 是一个前端资源加载/打包工具。它将根据...

2019-09-30 16:50:35 112

原创 LeetCode 每日温度 Python

思路栈的利用,用stack记录还没遇到较高温度的日期,温度较小则入栈,温度较高则stack中温度最小的出栈并继续比较剩下的,result[出栈的日期] = 当前日期-出栈的日期class Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: stack = [] re...

2019-09-10 17:25:11 215

原创 LeetCode 组合总和 Python

思路不知道为啥看不懂递归,但是却很好想到动态规划,利用哈希表储存前面计算过的组合,比目标值小的每一个数字都已经找到组合,这是再遍历candidate里的数时直接找到哈希表下标为[i-j]里的组合class Solution: def combinationSum(self, candidates: List[int], target: int) -> List[List[int...

2019-09-09 11:32:06 221

原创 打家劫舍 C语言

典型动态规划问题:f(k) = max( f(k-1), f(k-2)+n(k) )错误当时没有考虑到第0个和第1个的选取问题int max(int a, int b){ if(a<b) return b; else return a;}int rob(int* nums, int numsSize){ if(numsSi...

2019-09-03 09:06:09 815

原创 记录爬虫实战——有道翻译(反js加密)

首先在from data里面观察哪些是加密了的数据然后找到js文件格式化后观察加密方式代码如下import timeimport randomfrom urllib import request, parsetimes = time.time() * 1000salt = str(times + random.randint(0, 9))def getMD5(v):...

2019-08-12 15:35:25 170

原创 LeetCode 最接近的三数之和 Python

直接贴代码好了,Python真的没的说class Solution(object): def threeSumClosest(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ n...

2019-08-04 22:41:40 81

原创 LeetCode 盛最多水的容器 Python

思路还是双指针法,每次将短板一端向中间移,因为长板往短板移动的话一定是越来越少,而短板向长板移动的话,虽然宽度在变短,但是可能高度会变高,结果可能会变大,(ps不得不说Python比c好用多了)class Solution(object): def maxArea(self, height): """ :type height: List[int]...

2019-08-04 22:14:30 83

原创 LeetCode 三数之和 Python

思路最近学了python,就找了之前觉得C写起来很麻烦的题目练一练,这道题有个非常精妙的想法就是用双重指针,如果不够0小的指针往后移一位,大于0了就大的指针往前移一位,但是要注意去重class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: nums = sorted(nums...

2019-08-04 21:47:32 103

原创 LeetCode 只有两个键的键盘 C语言

思路通过画图找规律,可得出素数只能是n次,偶数就是它的二分之一时加二,基数就是它的公约数加上公约数变成它的次数int minSteps(int n){ if(n==1) return 0; int dp[n+1]; dp[1] = 0; dp[2] = 2; for(int i=3; i<=n; i++){ d...

2019-08-02 17:01:09 167

原创 0-1背包问题 C语言

回溯算法//cw表示已装重量和,i表示考察到第i个物品,w表示背包可承受重量,n表示物品个数,物品重量存储在数组a中,max表示当前最大值 void bag(int i, int cw, int w, int n, int *item, int *max){ if(cw==w || i==n){ //搜索剪枝 if(cw > *max){ *max = ...

2019-08-02 14:50:19 1026

原创 实现Trie前缀树 C语言

typedef struct Node { char data; bool isEnding; struct Node *child[26];} Trie;Trie* trieCreate() { Trie *node = (Trie *)malloc(sizeof(Trie)); memset(node, 0, sizeof(Trie)); ...

2019-08-02 10:25:50 818

原创 求逆序对 C语言

void merge(int *a, int p, int q, int r, int *num){ int i=p, j=q+1, k=0; int temp[r-p+1]; while(i<=q && j<=r){ if(a[i] <= a[j]) temp[k++] = a[i++]; ...

2019-08-02 10:24:37 1767

原创 LeetCode 有效的数独 C语言

思路哈希表,行、列、三宫格分别用一个表记录数字是否出现过,即下标为数字的元素用true标记已经出现过,遍历时若元素在三个表中已被标记为true,则返回falsebool isValidSudoku(char** board, int boardSize, int* boardColSize){ bool col[9][9] = {false}; bool row[9][9]...

2019-07-27 17:20:42 506 2

原创 LeetCode 对称二叉树 C语言

思路递归,true的条件是根结点的左节点与右节点相同,且左结点的左子树与右节点的右子树相同,左节点的右子树与右节点的左子树相同,递归结束的条件是左节点与右节点都为NULLint SymmetRis(struct TreeNode*p, struct TreeNode* q){ if(p==NULL && q==NULL) return true; ...

2019-07-26 17:17:25 252

原创 LeetCode 有效的括号 C语言

思路栈的标准用法错误题目居然可以小括号内套大括号(⇀‸↼‶)bool isValid(char * s){ char stack[10240]; int i=1; stack[0] = '0'; while(*s!='\0'){ if(*s=='(' || *s=='[' || *s=='{'){ ...

2019-07-26 16:46:22 232

原创 LeetCode 二叉树展开为链表 C语言

思路跟着官方题解的递归法走的,关键点就在于,找出根结点的左子树的最右结点,即左子树中最大的数,让其指向根结点的右节点,再将跟结点的左结点改为右结点错误每次改完之后要令当前结点指向下一节点/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode...

2019-07-26 13:22:12 218

原创 LeetCode 不同的二叉搜索树 C语言

思路又是动态规划问题,不难分析出按照中序遍历序列以第i个元素为根结点的二叉搜索数个数为F(i) = G(i-1) * G(n-i),所以总数为G(n) = F(1) + F(2) …+F(n) = G(0)*G(n-1)+G(1)*G(n-2)…G(n-1)*G(0)为了更好的写出循环,可以将n=3代入观察,G(3)= G(0)*G(2) + G(1)*G(1) + G(2)*G(0),...

2019-07-24 13:31:05 233

原创 LeetCode 从前序和中序遍历序列构造二叉树 C语言

思路写数据结构试卷的时候天天画那些二叉树的啦,思路很明显嘛,前序序列即根序列,遍历中序序列找到根结点,则左边是左子树,右边是右子树,但是条件不太好判断,应该要能够更加熟地练掌握struct TreeNode* buildTree(int* preorder, int preorderSize, int* inorder, int inorderSize) { if(preorder...

2019-07-24 12:21:09 1065

原创 LeetCode 寻找重复数 C语言

思路还是太嫩,除了循环和排序还真的想不到什么方法,看了大家的解答,发现这种数组居然可以当做链表来看,因为有n+1个元素却只有n个value,所以一定会形成环不断循环,此时另一个指针追上来与环中某个值相等时即环头,再用另一个指针从头开始往下走,同时环头元素也往下走,则一定会出现两个值相等的情况int findDuplicate(int* nums, int numsSize){ i...

2019-07-24 11:17:11 544

原创 LeetCode 回文链表 C语言

思路找到最中间开始相同的部分,对后部分链表进行反转,再将前半部分与后半部分逐一比较是否相同错误要注意循环终止条件struct ListNode* reverseList(struct ListNode* head){ struct ListNode *temp, *newhead = NULL; while(head!=NULL){ temp = hea...

2019-07-22 17:16:42 145

原创 LeetCode 移动零 C语言

思路我的思路是:遍历数组,若元素不是0,则按顺序放入数组,最后剩余的空位置补0官方题解给出的最优解也挺精妙,但是貌似不是最优解,只有80% 25%:用快慢指针,将慢指针留在0上,与后面一个元素即快指针做交换//方法一void moveZeroes(int* nums, int numsSize){ int k=0; for(int i=0; i<numsSize;...

2019-07-22 13:25:53 353

原创 LeetCode 求众数 C语言

思路方法一:先排序,再取中间的数,则一定是众数方法二:LeetCode官方题解中的投票算法,感觉思路真的很棒,首先假设第一个数为众数记为suf,遍历数组,若与suf相等的数则count+1,若不相等则-1,当count==0时,将suf改为此时的元素值,这样去掉了相等数量的两个元素后,当最后剩下的元素中众数一定还是多于其他元素,一直会保持count>0,suf还为众数//方法一i...

2019-07-22 11:54:17 460

原创 LeetCode 打家劫舍 C语言

思路典型动态规划问题,f(k) =max( f(k-1) + f(k-2) )错误一开始没有考虑到k=1时也要在0和1里面选择int rob(int* nums, int numsSize){ if(numsSize==0) return 0; if(numsSize==1) return nums[0]; if(numsSize...

2019-07-21 21:30:15 817

原创 LeetCode 汉明距离 C语言

思路一开始的想法是直接作异或运算,将答案放在数组中,再遍历统计元素为1的数量;后来看了别人的代码做了一下优化,可以直接统计数量错误终于知道为什么上一个也是有时候可以通过有时候不能了,因为初始化数组时的元素值是随机的,可能会出现符合条件的值,所以一定要记得初始化时将值全部赋值//方法一int hammingDistance(int x, int y){ int n = x^y;...

2019-07-21 19:27:25 389

原创 LeetCode 找到所有数组中消失的数字 C语言(不消耗额外空间)

思路第一种方法:新建一个长度为numsSize的数组用于记录n是否存在,即遍历原数组时,将元素对应新数组的下标,若存在则赋值为1,最后再遍历一次找出新数组中没有赋值的元素的下标,即没有出现过的数字(测试用例很容易通过,不知道为什么提交有时候会过有时候过不了)第二种方法:题目有提示可以在不分配额外空间的情况下完成,没有想出来怎么完成,在网上找到了大神的方法,可以遍历时直接将原数组元素对应原数组...

2019-07-21 12:17:42 404

原创 LeetCode 二叉树的直径 C语言

思路这个跟昨天那个求二叉树的最大路径和的思路相同,更简单一点,只需要深度优先搜索就行int max(int a, int b){ if(a < b) return b; else return a;}int root_max(struct TreeNode* root, int* sum){ if(root==NULL)...

2019-07-20 21:20:48 315

原创 LeetCode 把二叉搜索树转换为累加树 C语言

思路把中序遍历的顺序换一下,改成先右再左,这样用一个参数记录每次计算完的值,遍历的时候每次加上参数上一个记录的值就行void add(struct TreeNode* root, int* pre){ if(root==NULL) return; add(root->right, pre); if(*pre != 0) root...

2019-07-20 20:56:36 136

原创 LeetCode 爬楼梯 C语言

思路动态规划,第n阶台阶的方法数即退一步的所有方法加上退两步的所有方法int climbStairs(int n){ if(n==1) return 1; int a[n+1]; a[1] = 1; a[2] = 2; for(int i=3; i<=n; i++){ a[i] = a[i-1] + a[i-2]...

2019-07-20 19:54:36 216

原创 LeetCode二叉树中的最大路径和 C语言

思路一开始没有什么思路,看了大家的评论之后大概了解了可以用递归算的方法,最关键的就是有一个变量sum记录最大路径(加上根结点的),并可以随时与新的根结点比较并替换,而左右子树的选择是如果小于0直接舍弃取0就好,这样保证每次最后的都是正数,这样返回的时候一定是加法则一定路径在增加代码解释max_left,max_right标记新的根结点加上以被选择的最长的左子树和右子树的路径,left_ga...

2019-07-19 22:39:51 1783

原创 LeetCode 二叉树的中序遍历 C语言

思路递归很简单的伐/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; *//** * Note: The returned array mus...

2019-07-19 20:55:33 184

原创 LeetCode 买卖股票的最佳时机

第一种方法,暴力破解,两层遍历,不过耗时很长int maxProfit(int* prices, int pricesSize){ int max = 0; for(int i=0; i<pricesSize-1; i++){ for(int j=i+1; j<pricesSize; j++){ int profit = p...

2019-07-19 17:08:06 98

原创 LeetCode 两数相加2 C语言

思路先把两个链表补成一样的长度,再用递归方法错误注意函数里面用指针时也要提前在外面分配内存,不然LeetCode会报错要记得新建结构体也要mallocvoid add(struct ListNode* l1, struct ListNode* l2, int *count){ if(l1->next!=NULL && l2->next!=NULL)...

2019-07-18 23:05:19 103

原创 LeetCode 煎饼排序 C语言

思路有点类似选择排序,每次找到最大的那个位置max,下标在max之前的进行一次reverse,这样最大的元素就到了第一个位置,再将长度设为为距离最后一位未排序的位置再reverse,最大元素就变成了未排序的最后一位,即每次在未排序的序列中找到最大的元素进行两次reverse放到最后void reverse(int *A, int n){ for(int i=0; i<n/2;...

2019-07-18 17:16:01 321

原创 LeetCode 搜索旋转排序数组 C语言

题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别思路首先找出开始旋转的下标,可以用二分法再将该下标对应的值与目...

2019-07-15 16:11:17 182

原创 LeetCode 在排序数组中查找元素的第一个和最后一个位置 C语言

思路二分法查找/** * Note: The returned array must be malloced, assume caller calls free(). */int First(int *nums, int numsSize, int target){ int low = 0; int high = numsSize-1; while(low &...

2019-07-15 14:06:16 304

空空如也

空空如也

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

TA关注的人

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