自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大乐的博客

此地非逐弃者之王座,彼方乃行愿者之归所。无限清澈,星界银波。

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

原创 flutter子widget向上传递状态(状态跟踪)

或者通过接收controller来传递信息,例如textfield的controller.text。一般做法是接收一个回调,在每一次状态改变的时候通过回调向上传递状态。而不是主动向上传递。

2023-05-21 17:03:46 132

原创 java int转char

int 转 char

2022-10-03 04:03:57 446

原创 content-box 和 border-box

content-box告诉浏览器 width的数值只是content部分的宽度border-box告诉浏览器 width包括padding和border

2022-05-16 04:27:09 187

原创 js数组includes,map,filter,reduce

a = [1,2,3,4,5,6,7,8]//filtera.filter((val)=>{ return val>5})//output[6, 7, 8]//mapa.map((val)=>{ return val+1})//output [2, 3, 4, 5, 6, 7, 8, 9]//includesa.includes(3)//output true//reducea.reduce((a,b) =>a+b)//outp..

2022-05-15 12:49:35 185

原创 使用Promise避免回调地狱

jquery的ajax get等一众方法会返回一个Promise对象可以把调用api之后的回调逻辑写在promise的then(成功返回,对应resolve)和catch(错误返回,对应reject)两个函数里function getfoo(){ return $.ajax({url:"baidu.com"})}function getfuu(){ return $.ajax({url:"baidu.com"})} getfoo().then(value

2022-05-15 12:17:35 177

原创 js里三个点 ... 的用法

简单来说就是脱掉元素的最外面一层包装a = "foo"console.log([...a])//输出["f","o","o"]var number = [1,2,3,4,5,6]console.log(...number) //输出1 2 3 4 5 6可以用来复制元素var obj1 = {name:'chuichui'}var obj2 ={...arr}讲的比较详细的一篇:JavaScript中三个点代表什么-js教程-PHP中文网...

2022-05-15 12:03:36 646

原创 Android Picasso 无法加载图片

1 可能是没有授予网络权限在AndroidManifest.xml文件的<manifest></manifest>里面加入 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />2 可以打开Picasso自带的log

2022-04-20 16:59:17 2776

原创 Angular 项目学习总结

用Angular作前端开发框架,nodejs做后端(angular必须基于nodejs)几个关键的文件夹:node_modules/: 通过node 的npm(软件包管理系统)安装的angular核心包和第三方包src/:源代码文件夹src/app/: app 组件文件夹src/index.html:开始编译的根html文件.gcloudignore: 在GCP上部署时需要的文件,记录了不需要上传的文件夹(如node_modules)angular.json: angular配置

2022-04-04 08:18:06 466

原创 LeetCode 316. Remove Duplicate Letters

有点奇怪的一道题 题意是将字符串s内出现的每种字母只保留一个 并要求字典序最小有点类似优先队列的思想,遍历s的同时维护一个结果串ans,当出现未访问过的字符c时,从后往前查看结果串的字符,如果结果串ans当前的字符cc,满足cc>c 并且原串s后面还会出现cc,就把cc删除。从后往前删除所有这样的cc后,把c添加到ans的末尾。最后ans就是答案class Solution { public String removeDuplicateLetters(String s) {

2022-01-13 16:20:44 3829

原创 LeetCode 264. Ugly Number II

找出第n个ugly number(因数只有2 3 5)代码写得很巧妙 学到了因为每一轮都会将cur与2 3 5 分别判断一遍,所以不会有重复值class Solution { public int nthUglyNumber(int n) { ArrayList<Integer> ans = new ArrayList<>(); ans.add(1); int i2 = 0, i3 = 0, i5 = 0;

2022-01-07 04:17:23 102

原创 LeetCode 275. H-Index II

二分法查找最大的value 使得大于等于value的值有value个设数组长度为n,如果当前二分到i,如果从i到n的数组片段中,nums[i] > n-i 说明该value比i小,就往下查找,如果nums[i] < n-i 说明该value至少比nums[i]大 向上找,直到找到最大的nums[i] 满足 nums[i] > n - i, 答案为n-iclass Solution { public int hIndex(int[] citations) {

2022-01-07 03:56:36 95

原创 201. Bitwise AND of Numbers Range

可以观察二进制的规律,第0位每一个数变一次,第1位每2个数变一次,第2位没四个数变一次。可以推出来如果如果想让第i位所有数全为1,需要range<=2^i, 并且左右边界在该位置都是1class Solution {public: int rangeBitwiseAnd(int left, int right) { int dig = 0; int ans = 0; long n = (long)right-left +1;

2022-01-05 11:42:36 114

原创 Java 声明ArrayList数组

ArrayList<xxx> dp[] = new ArrayList[9];

2021-12-28 13:03:17 497

原创 LeetCode 73. Set Matrix Zeroes

用matrix[0][j] 记录第j列是否为0用matrix[i][0]记录第i行是否为0因为在0 0 位置有重复,所以新开个变量记录第0行或者第0列更新的时候先更新从第1行开始和从第1列开始妙啊 哭了class Solution { public void setZeroes(int[][] matrix) { int m = matrix.length; int n = matrix[0].length; int flag =

2021-11-29 17:28:56 93

原创 LeetCode 81. Search in Rotated Sorted Array II

二分搜索会有问题,因为数组中有重复的值所以在判断时,如果nums[l] == nums[r] l+=1

2021-11-27 12:02:35 176

原创 LeetCode 45. Jump Game II

双指针 On遍历一遍就好找出当前步数能到达的最远距离,直到距离覆盖了目标点class Solution { public int jump(int[] nums) { int n = nums.length; int l = 0; int r = 0; int ans = 0; while(l<=r){ if(r>=n-1) return an

2021-11-26 11:01:32 2956

原创 LeetCode 223 223. Rectangle Area

计算两个矩形union的面积若相离 直接返回面积之和若相交或包含,需要减去相交的面积相交的面积 = (最小上界-最大下界)* (最小右界-最大左界)class Solution { public int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) { int ans = (ay2-ay1)*(ax2-ax1) + (by2-by1)*(bx2-

2021-11-18 05:50:22 190

原创 Java 遍历map(Java8)

map.forEach((k,v) -> { System.out.println(k,v); });

2021-10-30 03:29:52 204

原创 Java 字符串内部排序

char []c = str.toCharArray();Arrays.sort(c);String s = String.copyValueOf(c);

2021-10-30 03:28:41 469

原创 49. Group Anagrams

对每个字符串内部按字母排序,如果是相同组成的字符串,排序后的串应该是相同的所以可以用这个排序后的串当做key来hashclass Solution { public List<List<String>> groupAnagrams(String[] strs) { List<List<String>> ans = new ArrayList<>(); int n = strs.length;

2021-10-30 03:26:51 103

原创 LeetCode 135. Candy

找出每个child分别相对于左边和右边的最长递增序列长度,取两者最大值就是他最后应该获得的糖数class Solution { public int candy(int[] ratings) { int ans = 0; int n = ratings.length; int []left = new int[n]; int []right = new int[n]; left[0] = 1; ri

2021-10-29 04:18:47 3028

原创 Java 向字符串尾部添加字符,int转char

char c = (char)(i+'a');str += c;

2021-10-29 03:16:01 1739

原创 LeetCode 767. Reorganize String

给定字符串s,把他变成相邻两个字母不相同的形状先变成相邻字符聚在一起的形状,然后重新填装,先填偶数index,再填奇数index丑陋代码class Solution { public String reorganizeString(String s) { int []cnt = new int[26]; int n = s.length(); for(int i=0;i<n;i++) cnt[s.charAt

2021-10-29 03:14:34 78

原创 LeetCode 1547. Minimum Cost to Cut a Stick

dp[i][j] 代表从第i个点到第j个点的尺子段被切断需要的最小cost从小到大枚举i到j的长度class Solution { public int minCost(int n, int[] cuts) { int[] newCuts = new int[cuts.length + 2]; newCuts[0] = 0; for(int i=0;i<cuts.length;i++){ newCuts[i+1]

2021-09-30 10:20:36 82

原创 LeetCode 116. Populating Next Right Pointers in Each Node

前提:是完美二叉树用层次遍历的方法,但是因为上一层已经有了next节点,所以就不需要队列来维护顺序,直接判断next是否为空和父子节点的关系,就能确定下一个节点的位置复杂度为O(n)/*// Definition for a Node.class Node { public int val; public Node left; public Node right; public Node next; public Node() {} ...

2021-09-24 12:05:40 121

原创 Leetcode 146. LRU Cache

两种做法:1 双向队列+HashMap2 直接用java的LinkedHashMap,同时重写它的removeEldestEntry逻辑,当容量超过capacity时移除class LRUCache {lruLinkedHashMap <Integer,Integer>map = new lruLinkedHashMap();int cap; private class lruLinkedHashMap<K,V> extends LinkedHashMa

2021-09-24 11:07:35 61

原创 Java String Integer互相转

String 转 Integer:Integer.parseInt(str);Integer.valueOf(str);Integer 转 String:Integer.toString(num);String.valueOf(num);

2021-09-24 09:50:03 90

原创 Java 先序 中序 后序的非递归

先序:直接用stack遍历,vis当前元素后按顺序压栈右儿子,压栈左儿子中序:压栈当前节点后接着压栈左儿子,当左儿子为空时vis栈顶元素,压栈栈顶元素的右儿子 Stack<TreeNode> s = new Stack<>(); TreeNode head = root; while(!s.empty() || head!=null){ if(head!=null){ s.

2021-09-22 14:18:37 106

原创 LeetCode 1382. Balance a Binary Search Tree

将一颗二叉搜索树变平衡二叉搜索树的特点:不管结构如何,中序遍历序列不变So 先得到中序序列,再构建平衡树/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; }

2021-09-22 14:01:04 91

原创 Leetcode 279 Perfect Squares

每条边距离为1的Dij,求从n到0的距离class Solution { public int numSquares(int n) { PriorityQueue<Pair<Integer,Integer>> q = new PriorityQueue<Pair<Integer,Integer>>((a,b) -> a.getValue() - b.getValue());

2021-09-22 13:18:52 95

原创 Java HashMap 可以存储null

HashMap<Node,Node> = map new HashMap();map.put(null,null);这样写是可以的

2021-09-15 02:28:53 2456

原创 LeetCode 329. Longest Increasing Path in a Matrix

记忆化dfs 用dp数组保存每次dfs的结果,下次直接拿出来用class Solution { int [][]dp = new int[210][210]; int [][] ma; int []ofx = {1,-1,0,0}; int []ofy = {0,0,1,-1}; int n,m; int ans = 0 ; public int longestIncreasingPath(int[][] matrix) { n

2021-09-10 13:42:58 63

原创 Java 优先队列PriorityQueue排序Pair

用lambda定义pair排序逻辑PriorityQueue<Pair<Integer,Integer>> q = new PriorityQueue<Pair<Integer,Integer>>((a,b) -> a.getValue() - b.getValue());这里(a,b) -> a.getValue() - b.getValue() 如果的逻辑是 返回值>0 则a大,否则b大优先队列默认...

2021-09-10 13:14:30 1232

原创 LeetCode 973. K Closest Points to Origin 优先队列

优先队列排序最后取出最小的k个class Solution { public int[][] kClosest(int[][] points, int k) { PriorityQueue<Pair<Integer,Integer>> q = new PriorityQueue<Pair<Integer,Integer>>((a,b) -> a.getValue() - b.getValue());

2021-09-10 13:10:28 71

原创 LeetCode 124. Binary Tree Maximum Path Sum

要注意两个逻辑:递归更新ans的值① 跟最终结果ans比大小时,要用“穿过当前节点的路径”,也就是左右子树可以一起选②递归返回上一层时,要选左右子树最多只能选一个,或者不选。当组成的最大值为负数时直接返回0/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNod

2021-09-09 10:23:34 65

原创 Java 栈的使用

创建: Stack<Integer> s = new Stack<Integer>();入栈:s.push(tem);弹栈:s.pop();查看栈顶元素:s.peek();

2021-09-09 09:58:24 94

原创 Java 分割字符串

String[] tem = String.split(":");

2021-09-09 09:56:52 96

原创 LeetCode 36. Exclusive Time of Functions

用栈模拟cpu的任务队列注意:开始时间给的是某一秒钟的开始,结束时间给的是某一秒钟的结尾class Solution { public int[] exclusiveTime(int n, List<String> logs) { Stack<Pair<Integer,Integer>> cpu = new Stack<>(); int len = logs.size(); String []t

2021-09-09 09:56:02 75

原创 逻辑移位和算数移位的区别

逻辑移位:不带符号的移位 适合无符号数算数移位 :带符号的移位 适合带符号数 其中负数右移 符号位补1

2021-09-09 05:55:53 270

原创 LeetCode 29. Divide Two Integers 注意负数的移位运算

因为负数的范围更大,所以用负数来表示商,同时特判商为-2^32的情况用移位和减法来循环模拟除法,最多计算32次PS:负数右移一位时负奇数 和除以二结果不同(因为要除以二截断,但是和正数截断的方向不一致)负偶数和除以二结果相同所以注意这点class Solution { public int divide(int dividend, int divisor) { int r = (1<<30)-1; r = r+r+1; .

2021-09-09 05:29:30 245

空空如也

空空如也

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

TA关注的人

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