自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

彤云望月

大学生

  • 博客(67)
  • 收藏
  • 关注

转载 JS JSON和Object的区别

前言在写js代码时,经常看到这样的情况:ob['arr1'] = "String";ob2.arr = "String"总是有些困惑,它们的type都是object,为什么读取属性的方式不同。区别具体的概念等就不赘述了,就说声明以及使用。JSON// 声明let json = { 'arr1' : 'string1', 'arr2' : 'string2'};// 使用const getArr = json['arr1']; // 动态赋值let json = {

2021-11-25 18:35:54 769

原创 JS 对象动态添加Key value对

需求json对象动态添加key value对。例如 目前有个数据 columnList和dataList,需要解析成jsonArraycolumnList: [ '表头1', '表头2', '表头3']dataList: [ ['数据1', '数据2', '数据3'], ['数据11', '数据22', '数据22'],]=> data : [ { '表头1': '数据1', '表头2': '数据2', '表头3': '数据3' } ,{}]可以理解为动态增加Json

2021-09-18 15:37:10 12740 2

原创 echarts 饼图 逆时针降序排序

需求echarts饼图,按照其每块的大小,逆时针从大到小排序,这样很清晰的看到大小关系。实现因为饼图数据是 [{ name, value }] 这样的 JSONArray,而我们查echarts官方文档可以得知,echarts默认是顺时针排序的,那么我们只要将 JSONArray按照value进行排序,最后得到的就是一个有序的饼图(不论是逆时针还是顺时针从大到小);JSONArray进行排序,可以查看MDN官方文档得知:arr.sort([compareFunction])其中的参数

2021-09-09 11:34:12 6698

原创 Antd Table 点击行变换背景颜色 (Antd React)

需求实现的目标是,点击这一行,然后出现一个modal,这个modal可以拖拽,并且可以知道是点击哪一行出现的事件。那么需要做的就是,点击这一行,然后其背景颜色变化。实现Antd Table有 rowClassName 属性,可以在 css设置其样式,那么我们只要点击行,然后记录点击的 rowkeyrowClassName设为一个函数,读取(record, index) ,判断其index 是否等于rowkey,如果等于就return一个类名。代码 {/* Table组件,其中在 onCl

2021-09-02 14:20:40 3344

原创 vue 跳转新页面并传参

前言  最近开发过程中有个新的需求,需要点击事件后跳转新的页面然后通过传参的数据展示表格。  具体来说,在一个Modal容器中,有一行字 “XXX目录”,点击这个目录,就会跳转新的页面,将需要的参数传给新页面的组件,然后向后端获取数据并且展示表格。  因为是在项目中,我们肯定要使用路由的方式。思路首先查了一下有两种方式打开新页面this.$router.push()this.$router.resolve()这两种方式的区别就是,push是在当前页面打开新的路由并加载组件,resolv

2021-07-09 10:39:52 4761 7

原创 echarts 与 vue v-if结合

前言需求 : 两个 tabpane,其中一个用来筛选数据,另一个在数据筛选完成之后才显示,里面有几个echarts饼状图,用来进行统计分析。遇到的困难:一开始在 tabpane直接使用 v-if,然后下面 v-if 无数据时 empty组件,有数据时 渲染饼状图。但echarts在初始化 dom时(无论是 getElementByid 还是 ref方法),都需要有dom存在,而v-if 的特性是,有条件时 dom渲染,无条件时 dom直接不存在,这样就会使得 echarts报错。那么我就想到

2021-06-29 19:45:45 2514

原创 echarts宽度如何设为百分比

前言问题 : 有八个饼状图要展示,其中一行展示两个饼状图。一开始是固定了宽度为450px,但到了宽屏上一行就会展示三个。思路:于是想当然的想到将 width 设为 百分比,继承父组件的宽度。但是改完之后图缩到了一起,网上查了查,发现echarts源码中,计算宽度的时候将 100% parseInt -> 100px, 所以比如我改成了45%, 就会显示为 45px。解决:最后查了各种博客,得到了解决方法,就是根据别的组件宽度来动态改变echarts图标的宽度。代码var width =

2021-06-29 16:43:46 3655

原创 LeetCode 1030. 距离顺序排列矩阵单元格

题意给定一个矩形,row ∈ [0, R) col ∈ [0, C),给定一个点 (r0, c0),返回一个vector<vector< int > >,其中每一个 vector< int > 是一对坐标点,顺序按照这些点到 (r0, c0) 距离的曼哈顿距离进行升序排列。思路方法一遍历矩形中的所有点,计算每个点到给定点的曼哈顿距离,sort即可。class Solution {public: vector<vector<i..

2020-11-17 14:47:08 161

原创 LeetCode 120. 三角形最小路径和 经典DP

题意:从一个三角形数组的顶点出发,每次只能向下( row + 1) 或者 右下(row+1, column+ 1)。求到底部最短的路径和。思路是一个经典的DP入门题。开始的时候我和之前一道题搞混了,想用bfs,把和都加到最后一行,但是写完了才发现根本就不一样。。虽然一开始就知道是DP,但是还想用dfs试试,结果虽然做出来了,但是在第43个样例就超时了。还是老老实实dp吧。首先dp[i][j] 我们设其为,从 triangle[I][j]到底部最短的路径和,显然,我们可以得知,dp[i][j]..

2020-07-14 15:25:32 151

原创 LeetCode面试题 17.13 回复空格

题意:给定一个字典,里面包含一些string,给定一个句子,从中匹配最多的字典中的string。输出未匹配的最少的字符数。思路:动态规划 + 字典树(1)动态规划dp[i] 代表 前i个字符未匹配的最少字符数。当遍历到第i个字符时,判断从 j 到第i个字符是否在字典中,如果在字典中,则dp[i] = min(dp[i], dp[j-1])。为什么是 dp[j-1],因为第j个字符到第i个都在字典中,所以是前 j-1个字符的未匹配最少字符数。若没在字典中匹配,则 dp[i] = dp[i-1.

2020-07-09 23:46:48 185

原创 LeetCode 108. 将有序数组转换为二叉搜索树

题意:给定一个有序数组,要求转化为二叉搜索平衡树。思路:我们知道,二叉搜索树的中序遍历是有序的,所以题目相当于给定中序遍历,创建一个二叉平衡树。如果是一个无序数组,我们创建二叉搜索树时,每插入一个节点都要进行二分查找寻找合适的位置,但因为已经有序,所以每次选择一个根节点,左边的数就是左子树,右边的是右子树。因为需要一个平衡树,所以选根节点的时候选中间的节点即可。如果是奇数就选中间的数,偶数就选左边的。选中间的节点,可以保证左右子树的节点数相差不超过1,那么为什么可以保证平衡呢?因为树的定义都是递.

2020-07-03 11:44:50 200

原创 Codeforces Round #653 (Div. 3) D. Zero Remainder Array

题意给定一个长度为n的数组nums初始化一个x = 0, 每次你可以有两种操作:1)x ++2)nums 任意一个元素 + x。其中每个元素最多加一次x。最终目的是让数组中每个元素都能被给定的一个k整除。思路 :对于一个数 tmp,我们考虑两种情况:1) tmp < k若是tmp + x mod k = 0, 则可以得到 tmp = A*k - x.可知如果要得到结果,x from 1 to k 这样的更新迭代期间,便可让tmp得到最终结果。如果其中有两个相同数值的tmp,则.

2020-06-29 15:52:23 144

原创 Educational Codeforces Round 90 D.Maximum Sum on Even Positions

题意:给定一个数组,设其偶数位置(0, 2, … 2k)上的元素和为sum。我们可以对任意一个子数组,最多逆转一次。计算能得到的最大的sum。思路首先我们可以想到,如果逆转的子数组length是奇数,则不会有任何变化。例如 1 2 3 4,逆转长度为3的子数组,可以发现其sum不变。那么我们便观察,逆转偶数长度的子数组。例如 7 8 4 5 7 3我们逆转长度为4的子数组——5 4 8 7 7 3,可以发现其sum = 5 + 8 + 7,相对于 7 + 4 + 7,变化了(8-7) + .

2020-06-28 21:11:26 184

原创 Python 交换两个数的值

Python 多元赋值的顺序:1、先计算 等号 右边的值,得到一个元组;2、然后再给 等号 左边的表达值赋值(按照从左到右的顺序)也即 a, b = b, a。但是当对数组赋值,例如 nums[nums[i]-1], nums[i] = nums[i], nums[nums[i]-1]如果顺序不一样,交换两个值,其得到的结果是不一样的。因为赋值的时候是按照从左到右的顺序赋值。...

2020-06-28 14:06:12 844 2

原创 LeetCode 209. 长度最小的子数组

题意:给定一个数组nums以及一个s,找出在nums中 >= s的长度最小的连续子数组,并返回其长度。思路:1、前缀和 + 二分查找首先想到的是暴力解法,第一个循环枚举子数组的左端点,第二个循环枚举右端点,同时维护一个最小的ans。for (int i = 0; i < n; i++) { int sum = 0; for (int j = i; j < n; j++) { sum += nums[j]; if (sum >=.

2020-06-28 13:54:28 164

原创 Codeforces 1373C - Pluses and Minuses

题目含义:本题并不是让你复现给的代码,而是以更简单的时间复杂度实现。题目思路:相当于找规律,首先打印出example1 里的变量改变情况。可以从上图看出,每次cur初始值递增,相当于设定了一个界限min, cur < min时,更新这个界限为 cur;同时res增加的部分,相当于 遍历的步长i + 1。因为每次都从头遍历一遍,而cur递增,前面的部分一样。 最后ans += len(str),因为从头到尾遍历了一遍此字符串。举例说明, --±。 初试 cur = min = ans = .

2020-06-27 17:14:39 359

原创 判断二叉树是否是平衡二叉树

前言本次首先是输入前序+ 中序遍历,创建一个二叉树,然后再判断其是否是平衡二叉树。如果创建,本贴不会讲,有意向的可以参考以下帖子:https://blog.csdn.net/qq_39763472/article/details/106976494思路:首先考虑到平衡二叉树的定义:对于每一个节点,它的左子树和右子树的高度之差不超过1。可以看出,是递归定义的,所以我们通过递归程序,先计算左子树高度,再计算右子树高度,如果相差小于1,则递归判断 左右子树 都是不是平衡二叉树。代码1、两个函.

2020-06-27 10:43:22 270

原创 计算二叉树带权路径和(WPL)

前言二叉树的带权路径和,指的是二叉树的所有叶子节点的权值 * 其深度 之和。本次因为是完整的程序,所以包含1)输入前序、中序序列 创建二叉树2)层序遍历打印出二叉树3)计算WPL数据结构定义typedef struct Node* List;typedef struct Node{List l, r;int data;};创建二叉树1、变量说明int n; // n是二叉树的节点数vector preorder(9), inorder(9); //前序和..

2020-06-26 23:54:03 2255

原创 flake8 : E305 — expected 2 blank lines after class or function definition, found 1 解决

BackgroundMac下的Atom编辑器,安装了 linter 以及 linter-flake8,编写python。再定义了一个函数后,继续写别的代码,报错。The Solution就像报错所说的那样,在类的定义以及函数定义之后,需要空两行。所以每次打两个空行即可。...

2020-06-19 11:26:49 7300

原创 LeetCode 53.最大子串和——DP

链接 : 原题题意 : 给定一个整数序列,找一个具有最大和的连续子串。思路 :动态规划。最近做的滑动窗口题比较多,我一开始想了半天滑动窗口,但是这题明显不是,因为没有判断条件。此题要O(n) 复杂度,所以肯定不能同时枚举起点和终点,所以只枚举重点。dp[i]代表的是以 第i个数字为结尾的最大连续子串长度。状态转移方程 : dp[i] = max(dp[i-1] + nums[i],...

2020-05-03 15:30:50 412

原创 LeetCode 3.无重复字符的最长子串——滑动窗口

链接 :原题题意 : 给定一个字符串s,寻找没有重复字符的最长子串,输出长度。例如 pwwkew 最长子串 wke。则长度为3.思路 :首先注意一下,子串 ≠ 子序列,子串是连续的。此题用的是双指针的一个应用,滑动窗口。思路即是,初始时,left = right = 0,然后只要满足条件 right指针右移,维护一个ans 代表最长子串的长度。如果不满足条件,则left 右移,缩减窗...

2020-05-03 14:43:14 151

原创 LeetCode 686 重复叠加字符串

链接 : 原题题意 :给定一个字符串a和b,判断 a重复加自身几次,b才是a的子串。思路:这里的子串是连续子串,并不是按顺序存在b里所有字母即可。所以我用的是 string里的find。题目说如果永远不可能,就输出-1,那么这个判定条件颇耐人寻味。如果不断加a后的字符串str的长度 > a + b的长度 - 1,那么b就不可能是a的子串了。原因很简单,我们设 len1...

2020-05-01 18:16:22 195

原创 LeetCode 21 合并两个有序链表——归并

链接 :原题题意 : 两个有序链表进行合并。思路:这个是经典的数据结构链表题,考研的时候在王道里面看到过,是一种经典的归并思想,也就是迭代。用的是尾插法。如果两个链表 l1 和 l2都不为空,那就比较两个数,较小的插入到 ans 表尾,更新节点,直到其中有一个链表为空。然后省下来的那个不为空的再逐渐添加到后面。代码:/** * Definition for singly-li...

2020-05-01 17:17:31 179

原创 LeetCode 202 快乐数——Floyd判圈算法

链接 : 快乐数题意 :思路:(1)只要把数位平方和相加,判断是否等于1即可。循环判断则用set即可。代码:class Solution { int check(int n){ int ans = 0; while(n){ int tmp = n % 10; ans += pow(tmp,2);...

2020-04-30 22:43:14 260

原创 LeetCode 1095 山脉数组中查找目标值——二分寻找极值

链接 : 原题题意 : 给定一个山脉数组,即凸函数,寻找一个数值等于target的index。思路 :因为凸函数峰值的左右都是一个单调函数,所以只要找到峰值,再对两边分别进行二分查找就可。凹凸函数找峰值,本来我是想用三分查找的,但是三分查找能确定峰值是double类型,即连续函数才适用的。整数点构成的凹凸函数,三分查找只能缩减一个区间。例如此题 :牛客算法周周练4 E题装备合成...

2020-04-29 22:50:58 356

原创 牛客算法周周练4 E题装备合成——三分搜索

链接 :装备合成题意 :思路 :控制变量设 方法一生成的装备数量为 m,则方法二生成的装备数量是min((x - 2 * m)/4, y - 3* m)。所以生成的总量函数 f(m) = m + min((x - 2 * m)/4, y - 3* m)。m 的范围是 [0, min(x/2,y/3) ] ,即使用方法一生成的个数。而直接线性维护此函数的极值,复杂度最高是 1e9/...

2020-04-29 18:01:52 242

原创 牛客算法周周练4 C题——阶乘 二分+阶乘分解质因子

链接 : 题目题意 : 给定一个p, 找一个最小的n,使得n!是p的倍数。思路 :有两种思路1、二分方法,因为要找到最小的n!,用二分即可。重点便是二分里的judge函数。(1)此题要用到分解质因子的方法。算数基本定理 : 任意一个大于1的自然数N,如果N不为质数,则N可以唯一分解为有限个质数的乘积。比如 100 = 2 * 2 * 5 * 5。这里我们要用map<in...

2020-04-29 16:12:43 197

原创 LeetCode 117 填充每个节点的下一个右侧节点指针

链接 : 原题题意:给定一个二叉树结构:使其每一个节点的next指针都指向其右侧的节点;如果右侧没有节点,就指向NULL。如图:思路:因为是给同一层的节点加上next,所以层序遍历即可。使用queue ,对每一层的节点,每次取出两个(如果是最后一个节点就特判,指向NULL),让前一个指向后一个即可。代码:class Solution {public: ...

2020-04-28 18:15:38 112

原创 LeetCode 76 最小覆盖子串

链接 : 最小覆盖子串题意:给定一个字符串s以及t,判断 s 里包含 t 所有字母的最小子串。思路:双指针的应用——滑动窗口(官方题解)举个例子,S = “ABAACBAB”,T = “ABC”首先两个指针 left = right = 0然后right 逐渐增加,直到窗口包含t 所有字母这时,维护最小的窗口,所以逐渐 缩减窗口,left ++ 。如果窗口减小后,不满足条件,则r...

2020-04-27 22:56:20 141

原创 北邮机试——special数

题意设一个数既是平方数又是立方数,那称它为special数。在输出1-n中有多少special数。思路一开始没有转过弯来,长时间没写题,想的是两个set,一个加入平方数一个加入立方数,然后判断公共数。后来想到special数是六次方数, 于是很简单了。代码#include "bits/stdc++.h"using namespace std;#define mem(a,b) m...

2020-04-17 15:06:53 244

原创 LCS 最长公共子序列

前言LCS(longest common string)最长公共子序列我学习的时候经历了从一般的O(n2)复杂度,数组开maxn* maxn; 用滚动数组优化空间; LCS转化成LIS,时间复杂度O(logn)。本次也按照这个顺序进行叙述。一般的O(n2)算法int dp[maxn][maxn]; mem(dp,0); for (int i = 0; i &l...

2020-03-26 00:22:02 129 2

原创 POJ 3301——三分搜索

题意:给定一些点,找出包含这些点的最小的正方形。分析:首先在标准坐标系中,确定一个边平行于坐标轴的正方形。然后旋转坐标轴,在(0,π/2)区间内旋转,每次确定的正方形面积是凹函数,找出其中面积最小的正方形即可。注意:坐标旋转公式代码#include "bits/stdc++.h"using namespace std;#define mem(a,b) memset(a,b,siz...

2020-03-24 23:05:14 202

原创 HDU 4355 Party All The Time——三分搜索

网页无法写

2020-03-24 15:42:43 134

原创 HDU 2899 Strange fuction——三分搜索

链接 : http://acm.hdu.edu.cn/showproblem.php?pid=2899题意 : 给定一个函数,判断其最小值。分析:首先回顾一下,单调函数查找特定的值,是通过二分搜索得到的。即 l = min, r = max. mid = (l + r) /2 此处是下界。 mid = l + (l+r)/2 是上界。三分搜索,则针对的是凹凸函数。如图:其中 ...

2020-03-23 23:37:27 173

原创 ACM 组合数求解

前言:因为之前做了一道cf上面的题,需要用到组合数,并且数据过大,于是学习了一下在可能会爆精度的情况下组合数的求法。公式:知识准备一、欧几里得算法即我们常说的“辗转相除法”,用来求a和b的最大公约数(greatest common divisor)int gcd(int a,int b){ return b == 0 ? a : gcd(b,a%b);}...

2020-03-14 00:12:50 550 3

原创 计蒜客 UCF Local Programming Contest 2013(Practice)B题

题目链接:https://nanti.jisuanke.com/t/43704题意:给定你一系列点,判断能组成多少个三角形。分析:因为一共也就100个点,所以直接暴力O(n3)即可。判断三个点是否可以组成三角形:(1)斜率不存在,即三个点横坐标相等。(2)斜率存在,如果两两斜率相等,就无法组成三角形。这里需要注意的是,如果用y1-y2/x1-x2这种方式计算斜率,最后判断两个斜率是否...

2020-03-12 00:23:03 295

原创 MacOS 安装 Homebrew失败解决办法

问题描述:在终端输入官网的指令/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”出现如下的错误:fatal: unable to access ‘https://github.com/Homebrew/brew/’: Failed to ...

2020-01-25 16:11:30 2151

原创 HDU 2058——等差数列

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2058题意:给定一个N, M。寻找1-N其中和为M的连续子串。思路:等差数列求和公式由M,即Sn,可以推出n的范围,然后暴力枚举n,求出a1. 然后回带。代码#include "bits/stdc++.h"using namespace std;#define mem(a,b)...

2020-01-12 12:11:43 269

原创 计蒜客 2019 蓝桥杯省赛 B组模拟赛(一)F 找质数

题目链接 :https://nanti.jisuanke.com/t/A2238题意:任给一个数n,找出两个质数相加可以等于n,并且是字典序最小。思路 :暴力求素数肯定会超时,于是我就想到了欧拉筛法。(当然最后发现nlogn的埃氏筛法也可以过。。)然后匹配每个素数即可,匹配的时候从第一个素数开始,判断n - prime 是不是素数,如果是就直接输出,就是最小字典序的答案。素数筛法优秀文...

2019-03-20 21:13:10 331

原创 二分查找算法的理解

前言在做LIS的O(nlgn)算法时,用到了二分查找算法。对于其中的一些条件,例如 l<r 和 l <= r 的区别,r = mid和r = mid-1的区别等等不是很了解,于是进行了一些学习。找第一次的出现位置二分查找因为有几个限制,其中一个便是 单调序列 这个要求,所以可能出现 2 3 4 4 4 5 6这样的数组,那么返回第一个出现的位置便是 i = 3时。i0...

2019-03-19 19:28:45 670

空空如也

空空如也

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

TA关注的人

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