随笔--记失眠的一晚
随笔 —— 记失眠的一晚不知道是因为什么缘故,今夜辗转反侧,难以入眠。遂翻身而下,不愿在与网易云音乐做半梦半醒的挣扎,在虚无中消磨掉夜晚的自由与白天的阴暗,想着用一篇博客记录下此时的所想,也算无病呻吟,聊以慰藉。
窗外的大雪淹没了时间的痕迹,悄无声息带走了这一学期的时光,也带走了四季。很快就要进入新的一年,一年的末尾时,总爱去想自己这一年究竟有了哪些成长,有了多少收获,就像出海的渔人一般,清点着别样的鱼获。可是,真的会有成长嘛?我以为的成长是真的有吗?这我不知道,但是我唯一确定的是,每一天后的我,会比前一天拥有更多勇气,或者说,每一天都在去试错,都在去和自己斗争,和自己的惰性,和自己的劣根性,进行一次又一次的斗争。有时候,我能够胜利,有时候,却输的彻底。我希望我能一直获胜,做一个常胜将军,我希望我能不向自己妥协,与自己做下的约定一定去完成,我希望我能坚持这一想法,直至生命终结。
眨眼之间,已经20岁,已达弱冠之龄,可是,我的眼中并没有对未来很执着的向往,反而更加怀念从前,对未来的展望中总是遍布着疑云,对每一条路的选择都抱有着不确定以及不自信能否走到最后的想法,我想拥有一个不会让自己后悔 ...
基于以太坊的众筹系统
基于以太坊的众筹系统1. 针对什么应用场景,解决什么问题
应用场景:
公益筹款平台,如水滴筹,用于生大病患者的筹款。
问题:
信息造假:如救助金额和目标款项、医院资料、个人资料等可以造假。
资金管理不透明:资金流转操作由平台统一接管,存在隐私数据泄露、平台提成收取过高、资金发放迟缓等问题。
缺乏监管和透明度,影响捐赠者信任。
2. 面向什么客户,满足什么需求,提供什么价值
客户群体:
公益众筹:因病或因事故需要帮助的个人或家庭。
企业众筹:初创企业或项目。
需求:
安全性和可靠性:用户需要去中心化的众筹系统,保障信息和资金安全。
数据可溯源:用户希望对数据进行溯源,防止篡改和隐私泄露。
价值:
透明度和可追溯性:所有交易记录都记录在区块链上,增加透明度,减少欺诈行为。
去中心化:资金管理和分配不依赖于单一平台,降低中心化风险。
安全性:智能合约自动执行,减少人为干预,确保资金安全。
效率:自动化流程减少传统众筹中的繁琐步骤,提高效率。
信任:保证信息真实性和资金流向透明性,增强捐赠者和投资者的信任。
创新:利用区块链技术,为众筹领域带来创新解决方案,推动行业进步。
...
小米便签维护开发
Mi Note项目来源MiCode便签是小米便签的社区开源版,由MIUI团队(www.miui.com) 发起并贡献第一批代码,遵循NOTICE文件所描述的开源协议,今后为MiCode社区(www.micode.net) 拥有,并由社区发布和维护。
项目源地址:https://github.com/MiCode/Notes本项目地址:https://github.com/Shawnicsc/MiNote
环境配置Android Studio 2022.3
Gradle 8.1.3
SDK 11
JDK 17
阿里云数据库 – MySQL
使用说明可安装的程序包(apk文件) 在 release 文件下,直接安装运行。
新增功能介绍1、登录注册功能
2、上传下载功能
3、加密文件功能首先给note数据库添加属性password locker,当用户编辑便签,选择设置密码时,调用setPassword方法
123if (itemId == R.id.menu_set_passwd) { setPassword();}
在setPassword中,首先定义对话框,以及对 ...
Android-Studio配置运行小米便签
1.下载Android Studio官网地址:Android Studio
安装教程:Android Studio 安装教程
默认下载即可,选定好SDK的下载地址即可。
1.1配置 Gradle 地址(建议)在下载之后,可以配置一下Gradle的地址,这样在后续import项目时,出错后,方便修改。
在Settings -> Build -> Build Tools -> Gradle中可以修改Gradle的仓库地址
2.项目 clone小米便签项目仓库地址: 小米便签
git clone 或者直接直接下载压缩包都可
3. import 项目此处不能新建项目,直接把文件放入Android Studio,会有你意想不到的报错~
使用import的方式,通过Gradle 的方式编译整个项目。
在sync的过程中,会有各种各样、莫名其妙的报错,部分报错的解决办法,见第5部分的报错解决
出现如下图所示即为,sync成功
3.1 Gradle 项目gradle是基于Apache Maven概念的项目自动化构建开源工具。他是使用一种基于groovy的 特定领域语言来声明项目配 ...
赎金信
赎金信赎金信
此题采用数组解法,只需分别遍历两个数组,记录各元素出现次数即可。
12345678910111213141516171819202122class Solution { public boolean canConstruct(String ransomNote, String magazine) { int[] res = new int[26]; if(ransomNote.length() > magazine.length() ) return false; char[] maga = magazine.toCharArray(); for(int i = 0;i<magazine.length();i++){ res[maga[i] - 'a']++; } char[] ran = ransomNote.toCharArray(); for(int i = 0; i<ransomNot ...
四数之和
四数之和四数之和
思路分析此题是从四个数组中寻找相加为0的四个数,其中会有重复出现可能,所以可以使用 Map 哈希法来解决。
key 存放前两个数组a+b的值,value存储a+b出现的次数。
先遍历前两个数组,存储a+b的值和出现的次数。
再遍历剩下两个数组,寻找 0-c-d 是否在map中出现,使 res加上 出现的次数,即可获得答案。
123456789101112131415161718192021class Solution { public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) { Map<Integer,Integer> map = new HashMap<>(); // 寻找 a+b for(int a : nums1){ for(int b : nums2){ int sum = a+b; map.put(sum, m ...
SpringBoot跨域访问配置
SpringBoot跨域访问应用场景当我们在进行前后端开发时,经常会需要在前端接收来自后端的不同端口传输的信息,此时便需要用到跨域访问。
跨域跨域是指跨域名的访问,以下情况都属于跨域:
域名不同 www.baidu.com 与 www.taobao.com
域名相同,端口不同 www.baidu.com:8080 与 www.baidu.com:8081
二级域名不同 shawni.jd.com 与 ran.jd.com
Config 配置类解决跨域问题,既可以在前端,也可以在后端,我们在实际开发场景中,通常在后端配置一个跨域配置类,指定可跨域请求的路径。
123456789101112131415161718@Configurationpublic class CorsConfig { // 当前跨域请求最大有效时长。这里默认1天 private static final long MAX_AGE = 24 * 60 * 60; @Bean public CorsFilter corsFilter() { UrlBasedCorsConfig ...
SpringBoot集成SwaggerUI
SpringBoot集成Swagger3应用场景在开发时,我们经常会面对对接口的测试。而 Swagger 是一个在线api框架,能够在线测试我们的api接口。同时是支持RESTfui 风格接口测试。
依赖导入123456<!--swagger--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version></dependency>
Config 配置类12345678910111213141516171819202122232425262728293031323334353637@Configuration@EnableOpenApipublic class swaggerConfig { /** * 创建API应用 * apiInfo() 增加API相关信息 ...
两数之和(集合版)
两数之和 - 集合版两数之和
此题目中,需要判断某数是否存在,且返回下标,我们可以使用 Map 来进行构造。
在遍历数组时,判断target-nums[i] 的值是否存在于map中,若在,则直接返回,不在,则把该数以及下标加入map中。
1234567891011121314151617181920class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer,Integer> map = new HashMap<>(); int[] res = new int[2]; if(nums == null || nums.length == 0) return res; for(int i=0;i<nums.length;i++){ int temp = target - nums[i]; if(map.containsKey(temp)){ ...
快乐数
快乐数题目地址:快乐数
题目中,提到了 无限循环 ,而每一次需要判断sum是否重复,我们在判断是否有重复元素时,可以使用 Set 集合。
使用Set 集合,对每一次求得sum进行判断,直到sum==1为止。
1234567891011121314151617181920212223class Solution { public boolean isHappy(int n) { Set<Integer> set = new HashSet<>(); while( n!= 1 && !set.contains(n)){ set.add(n); n = getSum(n); } return n == 1; } //求一个数各个位置平方和 public int getSum(int n ){ int sum = 0; while(n>0){ sum += (n ...