- 博客(141)
- 资源 (6)
- 收藏
- 关注
原创 vant tabbar遮挡内容的解决方式
vant tabbar 遮挡内容是由于cover-view的自定义组件实现形式导致的,与内容元素并不是同级关系。可以使用一个空view占位来解决
2022-06-12 22:08:21 7068 16
原创 vant popup+其他组件的组合使用,及避坑指南
做小程序开发,相信大家对于表单收集肯定不陌生。但是我们经常会碰到一些比较稍微复杂的选项,并不是简单的填一些文字,数字,或者选择一下是否就能搞定的。可能需要交互判断,或者结合其他自定义组件才能很好的展示出来,但这种组件往往都很占空间,如果一股脑都叠罗汉似的放到表单里,页面会显得非常拥挤。那么如何解决这个问题呢?常见的方式有,popup弹出层、跳转新页面等等。其中跳转页面的加载卡顿和不连续感会影响用户体验,除非是单独的多项收集页面,信息量很大那另说。所以在实际应用中,popup弹出层是最常见的...
2022-06-10 22:53:47 4866
原创 引入 vant-weapp tabbar 并适配 pagePath跳转
之前的专栏文章有提到过引入三方组件库的必要性,因为官方的很多组件扩展性很差,甚至很多常用的组件都没有,比如 popup,自己又不想重复造轮子(目前的前端实力也不允许~)。但是引入组件库之后,又会导致一些其他问题,就拿tabbar来说,原生的tabbar,只需要在app.json文件里定义好tabbar的配置,然后在具体的page里写逻辑就好了,框架会自动判断当前tab页并渲染,然后执行对应page的逻辑代码,如下:"tabBar": { "list": [{ "pagePath.
2022-05-03 12:23:09 2586 3
原创 UI组件库的引用方式
一、引入组件库:引入官方组件库有两种方式,分别是:通过npm下载依赖项到本地,以及在 app.json 中设置 useExtendedLib: { "weui": true}。后者引入的组件不会计入代码包大小。Tips: 因为小程序的代码包有上限,目前总包是 20M,每个分包/主包大小不能超过 2M。简单理解就是主包在小程序启动的时候会默认加载启动,分包在需要的时候才会下载并加载,用来提升小程序初次加载速度。但是实际在使用中,我们经常用到的 tabbar 组件(和其他组件),往往需要搭配图标使用
2022-04-08 02:32:08 2041
原创 开发者工具的基本设置
笔者环境:macos Monterey12.3版本 + 24寸显示器,大家可以根据自身环境进行适当微调一、编辑器&终端其实主要也就是终端显示和字体大小,macos上默认终端字体拉伸太严重,用 monospace等宽字体代替{ "editor.fontFamily": "Consolas", "editor.fontSize": 16, "editor.lineHeight": 24, "files.autoSave": "off", "editor..
2022-04-05 21:31:48 2296
原创 《蛤蟆先生去看心理医生》随笔
这本书还是比较有名的,大体内容也就是书名那样,一个蛤蟆患上了抑郁症,然后去看心理医生(苍鹭)的全过程。写这篇文章的时候(2022.4.4),我只是在午休的时候把这本书看了一半(书的内容并不多),不过好在博客可以持续更新,倒也不是很影响。对于一个「心理学门外汉」来说,目前为止让我觉得最受启发的是心理医生——又称咨询师,的沟通和引导方式。一开始蛤蟆是为了避免让朋友们担心才答应来看医生的,苍鹭首先纠正就是蛤蟆这种旁观者心理,「你是为自己治疗的,你才是主体」,同时解释自己全程都是和蛤蟆「合作」来解决这个抑.
2022-04-04 22:24:25 630
原创 写在开头的一些话
其实我自己也是个小程序新手,但是好歹有过其他领域的开发经验,还是可以触类旁通的。本身这个专栏叫「从零开始-小程序开发」,想做成一个完整记录的专栏,但是考虑到各大平台,包括微信开放平台本身都有丰富的各个阶段的教程。所以最终还是决定以记录开发过程中遇到的疑难点这种风格,穿插着记录一些关键的知识,毕竟我碰到的问题可能有的同学也会碰到,权当做抛砖引玉了:)先记一下自己开发小程序的整体计划:基础学习:a. 官方的教学视频,官方用五个简单的小视频,以开发一个名片小程序为线索,介绍了包含:开发者注册,开.
2022-04-04 01:59:01 725
原创 场景值获取
如上图,初始化后的项目,app.js 中 onLaunch() 方法在小程序初始化完成时,可以指定参数 options,也就是小程序里的场景值对象。简单来说也就是从哪里进入小程序页面的。它的基本组成:{ mode: "default" path: "pages/index/index" query: {} referrerInfo: {} scene: 1001 shareTicket: undefined __proto__: Object}scene 为场景code,有可能是.
2022-04-04 01:04:14 622
原创 volatile 的那点小事儿
先简单回忆下基础知识,Java 中内存模型的三大特性:原子、有序、可见:原子性:即一个操作要么成功,要么失败,没有第三种状态有序性:编译器和处理器在执行代码的时候,会将没有强依赖的多个指令进行重新排序,来提高执行效率,比如耗时长的放前面,趁机做些别的小操作等等可见性:线程从内存中访问变量,是先将变量从主内存拷贝到线程的工作内存中(高速缓存或者寄存器),再进行操作。那么在多线程场景下,就有可能出现线程A刚拷贝了个变量,线程B就将主内存的变量更新了,而此时线程A的变量就不是最新的了,这就是不可见vo
2021-08-28 23:03:50 130
原创 ThreadLocal 就一定线程安全吗
首先,线程安全主要针对并发情况来说的,在多线程环境下,ThreadLocal 可以提供给各自线程私有的局部变量,使线程间互不影响。当然,也有例外,比如下面这个栗子:/** * @Author Joy * @Date 2021/8/27 * @Desc ThreadLocal 作用的是同一个对象时,线程不安全,无法隔离 */public class ThreadLocal_Unsafe { private static SingleA singleA = new SingleA();.
2021-08-28 00:51:45 2545
原创 python文件头模板
一、设置路径:!这里注意,如果要使用 #[[$END$]]# 指定初始光标位置,需要勾选实时模板。二、个人常用模板:#!/usr/bin/env python#-*-coding:utf-8 -*-# @Time :${YEAR}/${MONTH}/${DAY} ${TIME}# @Author :Joy# @Version :python3.9# @Desc :#[[$END$]]#三、预设模板变量如下:${DATE} - 当前系统日期${DAY} - 本月的当前
2021-07-26 23:03:50 1900
原创 Python3调用谷歌机翻的两种方法
笔者环境:win10 + python3.9 + requests 2.25.1 + urllib3 1.25.8 + selenium 3.141.0 + chromedriver.exe 90.0.4430.212目前通过 python 调用免费的谷歌机器翻译,据我测试有两种相对简单的可行方法:调用免费翻译接口,优点是速度快,缺点是次数有限制并且需要挂 VPN,目前为止测试是单个 IP 查个几十次就会被限制selenium 大法,模拟浏览器请求和抓取结果,优点是不需要挂 VPN,缺点是稍微慢.
2021-05-30 12:31:10 864
原创 python3操作xls,xlsx文件方法汇总
笔者本地环境:win10 + python3.9实现方式:一、使用 xlrd、xlwt、xlutils 三个模块来操作 xls 或 csv 文件,优点是快,缺点是大数据写入时会报错,且实现方法代码量较大,这一部分主要是借鉴网友的代码,原文:https://www.jianshu.com/p/a8391a2b8c6c二、使用 openpyxl 模块来操作 xlsx 文件,优点是功能齐全,一个模块搞定所有问题,缺点是只有按行写入时较快,否则比较耗时废话不多说,直接上代码:import xlrdi.
2021-05-18 00:42:46 1696
原创 先知先行,互联网之巅的表达者
初识冯大,还是来自于张哥的公号推荐,冯大的低调可见一斑,公号的运营更是佛系,甚至我有段时间都忘了还关注了这一号人物,更因为经常看到众多号主都对冯大推崇不已,让我一度像文中所说的那样产生过疑问:这人是谁啊,为什么这么出名?而今看了《绝非偶然》中几十页类似自传式的阐述,才了解到冯大在互联网圈子里的资历,也鲜活了在我脑海中的形象。而这些似乎闲话家常的文字,更像是一个长者,对我们这些互联网年轻人的敦敦教诲,让我受益匪浅。1、 超前意识往往是在一件件寻常的事情中积累的。这种能力依赖于长期的经验和思考,很多选择看似
2021-04-27 23:41:00 194
原创 如何系统学习技术
1、技术出现的背景、发展,为了解决什么问题:就比如在 HDFS 诞生之前,市面上已经有了很多分布式文件系统了,那为什么还要特地搞一个 HDFS 呢?就是为了适应 Hadoop 生态里的其他技术,已有的系统并不能满足大数据分析的具体场景。还需要了解 HDFS 在发展过程中,一些重要的特性变化,比如为什么拆分出了 YARN 来独立管理资源调度,为什么后面添加了 HA。这些不光可以帮助我们更好的理解这项技术的设计思路和演变,还可以作为他山之石可以攻玉的手段,去理解甚至设计其他技术。2、这项技术的优势与劣势:
2021-04-08 02:10:57 362
原创 Hexo常用命令
首先 cd 到 hexo 的安装目录,最好是用 git bash 运行以下命令一、常见命令:hexo new “postName” #新建文章hexo new page “pageName” #新建页面hexo generate #生成静态页面至public目录hexo server #开启预览访问端口(默认端口4000,'ctrl + c’关闭server)hexo deploy #部署到GitHubhexo help # 查看帮助hexo version #查看Hexo的版本二
2021-03-28 21:25:15 653
原创 SpringBoot环境配置&项目搭建
笔者环境为 win10前置工具:JDK 1.8SpringBoot 2.xIDEA community安装步骤安装 jdk,maven 并配置 maven 镜像地址为阿里云,本地仓储.m2配置环境变量 JAVA_HOME=jdk 安装绝对路径,M2_HOME = maven 安装绝对路径,用户系统路径 PATH=%PATH%;%JAVA_HOME%\bin;%M2_HOME%;修改 idea 默认配置文件 idea.properties 中的缓存路径 config、system {.
2021-03-28 20:47:46 171
原创 Nodejs安装配置步骤
笔者系统环境为win10一、文件下载Node.js官方下载地址解压后路径为: H:\node-v10.15.0-win-x64在路径下新建两个文件夹,分别为:node-cache、node-global前者是npm缓存目录,后者是npm全局安装位置二、解压并添加到环境变量:新建用户变量 NODE_HOME=H:\node-v10.15.0-win-x64添加至系统变量或者含有系统变量 %PATH% 的用户变量:%NODE_HOME% 和 %NODE_HOME%\node-glob.
2021-03-28 20:36:07 221
原创 身份证异地换领
因为自己换领身份证的时候网上没搜到啥有价值的信息,想着别人可能也会有同样的困惑,记录下需要注意的事项,这里以武汉为例,给有需要的同学参考吧:哪里可以办?所有派出所基本都支持异地身份证办理。派出所信息可以在网络或者地图软件上搜索到,我是工作日抽空去的公司附近的派出所,来回只花了半个多小时。什么时候可以办?派出所是全天开的,但是在派出所里的户籍办理点好像不一样,所以最好是工作时间去,周一至周五 上午8:00-12:00,下午14:30-17:00需要哪些材料?带个身份证就好了,我开始还以为要户
2021-02-26 22:33:39 204 1
原创 最小路径和-LeetCode
题目题目链接:https://leetcode-cn.com/problems/minimum-path-sum/思路:典型的一道动态规划题,和跳台阶十分类似,因为根据说明,每个格子的上一步只有两种情况:从上边来,从左边来所以如果我们规定 dp[i][j] 为到达单元格 grid[i][j] 的最小路径,那么有以下四种情况:i=j=0,即左上角,没有前置格子,所以跳过i=0,j>0,上边界,没有来自上面的格子i>0,j=0,左边界,没有来自左面的格子i>0,j>
2021-01-31 11:06:35 155
原创 从前序与中序遍历序列构造二叉树-LeetCode
题目:题目链接:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/submissions/思路:题目给定的无重复元素是关键,否则无法根据前序在中序里找到每个子树的根节点规律就是前序的每个子序列的第一个元素,在中序里都能够将中序切为它自己的左右子树比如题目给定的3,将中序划分为 [9]、[15,20,7],9即为3的左子树的根结点,前序剩余的[20,15,7]的
2021-01-28 23:22:52 144
原创 只出现一次的数字-LeetCode
题目:题目链接:https://leetcode-cn.com/problems/single-number/思路:题目限定了空间和时间,所以常规的暴力法不行,否则可以用hash存储元素出现的次数这里使用异或来解交换律:a ^ b ^ c <=> a ^ c ^ b任何数于0异或为任何数 0 ^ n => n相同的数异或为0: n ^ n => 0比如:var a = [2,3,2,4,4],2 ^ 3 ^ 2 ^ 4 ^ 4等价于 2 ^ 2 ^ 4 ^ 4
2021-01-26 22:43:07 89
原创 反转链表-LeetCode
题目:题目链接:https://leetcode-cn.com/problems/reverse-linked-list/思路:三种解法:暴力法:遍历一次用栈存储每个Node,然后依次将栈中元素pop并链接起来形成新链表,这里有个坑是栈底Node的next需要置空,否则会形成环迭代法,使用三个指针来往后滑动,依次改变指针指向递归法代码(迭代法):class Solution { public ListNode reverseList(ListNode head) {
2021-01-26 00:01:33 157
原创 除自身以外数组的乘积-LeetCode
题目:原文链接:https://leetcode-cn.com/problems/product-of-array-except-self思路:开始想用除法,先全部乘起来,然后每一个都除以当前的元素值就可以了,然后有特殊情况0,而且题目限定死了所以我们可以用类似迭代的思想,对于每一个元素之外的乘积分为前后两部分,复用输出数组,减少空间占用代码:class Solution { public int[] productExceptSelf(int[] nums) {
2021-01-25 01:55:50 203
原创 二叉树展开为链表-LeetCode
题目:题目链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/思路:这题难在改变指针指向的时候,原本的右指针的子结点需要保存,这里使用递归,右左根的顺序访问结点这样栈桢在回退的时候,顺序就是根左右我们就可以先将当前根结点也就是上一个结点的左结点取出来,存进临时变量,在下一次栈桢回退的时候,作为上一个结点的右结点。代码:/** * Definition for a binary tree nod
2021-01-22 01:15:40 301
原创 组合总和-LeetCode
题目:原文链接:https://leetcode-cn.com/problems/combination-sum/思路:涉及到排列、组合这种题目,多多少少都会涉及到回溯思想这题关键在于「元素可以无限制被选取」,所以和全排列那种不一样,不能用used数组来缩小分枝规模其余思路符合典型的回溯算法,即每次选取下一次应用的数字,如果不符合则往上会退一步,选取除去该数字之外的另一个数排序过后可以减少不必要判断,比如235和5,如果2+3都已经大于给定数字5了,那么回退一步的2+5就没必要判断了,因
2021-01-20 01:00:17 123
原创 根据身高重建队列-LeetCode
题目:假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。示例 1:输入:people = [[7,0],[
2021-01-18 22:45:30 194
原创 旋转图像-LeetCode
题目:原文链接:https://leetcode-cn.com/problems/rotate-image/思路1(暴力法):首先暴力法,遍历一次用一个中间矩阵保存旋转过后的元素位置,再遍历一次将中间矩阵的值赋给原矩阵但是由于题目要求原地旋转,所以放弃,但是保留下思路代码代码1:class Solution { public void rotate(int[][] matrix) { int n = matrix.length; int[][]
2021-01-17 16:52:17 162
原创 二叉树的中序遍历-LeetCode
题目:原文链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/思路:递归或者使用栈来模拟递归时间复杂度都是O(n)代码(递归):/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * Tree
2021-01-16 23:13:06 115 1
原创 二叉树的深度-LeetCode
题目:原文链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/思路:就使用递归深度优先遍历就好了,如果当前结点非空,那么返回深度就默认+1时间复杂度为O(n),因为每个结点只被访问一次代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; *
2021-01-14 23:56:22 169 1
原创 比特位计数-LeetCode
题目:原文链接:https://leetcode-cn.com/problems/counting-bits/思路:暴力法直接遍历每个数字,并对数字进行二进制转换和统计1的个数迭代法就是找规律,先列出前三个值,后面的可以根据规律直接取个数,需要注意的是结果的返回,需要根据输入切片返回指定值代码:class Solution: def countBits(self, num: int) -> List[int]: ''' # 暴力法
2021-01-13 22:31:57 289
原创 括号生成-LeetCode
题目:原文链接:https://leetcode-cn.com/problems/generate-parentheses/思路:暴力法是递归生成所有组合方式,同时判断是否符合要求回溯法,不需要在生成完整的组合之后再判断,因为在每一个位置最多有两种摆放方法:当前还有左括号剩余时,放置左括号;当前组合中已经放置的左括号的个数大于右括号个数时,放置右括号然后回退一步,逆操作状态值(此处状态值为临时存储空间),查看接下来剩余哪种情况代码:class Solution: def ge
2021-01-12 23:23:19 178 1
原创 全排列-LeetCode
题目:链接:https://leetcode-cn.com/problems/permutations/思路:这是一道典型的回溯算法题,需要注意的是全排列是有顺序之分的,123和132是两个结果基本思路就是深度优先遍历,每次固定一个元素(添加至temp中),并保存当前元素已经被使用used,然后在剩下的元素中继续固定,当递归深度depth和全排列长度相等时,保存一下中间数组temp的值,这里需要注意temp是引用,需要复制数组然后向上回溯一层,即回退temp的最后一个值,找找有没有别的没用
2021-01-10 23:39:05 578
原创 翻转二叉树-LeetCode
题目:链接:https://leetcode-cn.com/problems/invert-binary-tree/思路:这题在剑指offer上也有,就是递归,然后交换下左右子树就可以了代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int
2021-01-08 01:02:06 121
原创 汉明距离-LeetCode
题目:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/hamming-distance思路:首先看题目就知道肯定是位运算,位运算无非就是按位^、&或者移位根据解释,可以发现,按位^之后结果设为X,箭头位置会变成1,其他位置为0,那1的数量就是「汉明距离」了所以题目转换为求X的二进制中1的个数,这里有两种方法第一种是使用内置函数将X转换为二进制字符串,求1的个数第二种是向右移位,并和1按位&,根据结果判断该位是否位1
2021-01-08 00:33:32 194 2
原创 子集-LeetCode
题目:给你一个整数数组 nums ,返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subsets思路:个人觉得这道题没有说清楚,整数数组是否会含有重复数字,如果是的话那官方题解也
2021-01-03 22:50:08 132 2
原创 合并二叉树-LeetCode
题目:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。注意: 合并必须从两个树的根节点开始。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-binary-trees思路:直接使用先序遍历的递归法,对左右子树进行判断和叠加,
2021-01-02 15:17:39 321
原创 顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.示例1输入:[[1,2],[3,4]]返回值:[1,2,4,3]思路:这题没什么花里胡哨的算法,就是把题目拆解代码实现我们可以看成顺时针每一圈打印一次,一圈一圈往内部收缩每一圈四个边边,每一边打印单独的逻辑,打印完
2020-12-31 00:48:23 86
原创 数组中的逆序对
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字示例1输入:[1,2,3,4,5,6,7,0]返回值:7思路:开始用了暴力法,两层循环两两比对,果然超时了查看题解,思路和快排思想十分类似,本质是分治然后归并简单来说,就是把大数组M切分成一个个小数组比如A、B,组内比较计数然后排序
2020-12-30 00:27:40 294
原创 翻转单词顺序列
题目:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?示例1输入:“nowcoder. a am I”返回值:“I am a nowcoder.”思路:这题没啥好说的,根据空格切
2020-12-28 21:51:28 106
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人