- 博客(410)
- 收藏
- 关注
原创 第一节(学习HarmonyOS的背景)
去华为官网学习即可,资料很全,讲的很详细。去什么地方学习HarmonyOS?长篇大论不写了,就总结四个字吧,为什么学习HarmonyOS?
2023-12-26 14:53:59 290 1
原创 如何系统的学习一门it技术
选择自己感兴趣的技术(别在乎别人的看法,感兴趣才是最重要的)根据自己的兴趣加上这个行业的发展前景去做选择如果自己什么也不懂,可以看看培训机构的课程(这里不是说去报班,而是可以看他们的教学的内容,然后去自学)如果自学能力差,可以选择报班最后说一句:兴趣很重要。
2023-06-04 19:04:07 576 1
原创 791. 自定义字符串排序
思路:算是个简单题吧,中等有点过分了。用 map 通过 order 字符串重新定义下每个字符的大小关系,然后对 s 按照记录的大小关系排序即可。map 里面没有的字符,默认大小为任意一个值就可以了(因为可以在任意一个位置),我这里写的默认值是 0。
2022-11-13 16:43:40 289
原创 解决“¥”符号在安卓上显示只有一个横杠的问题
每个普通字符(或半角字符)只占用一字节的空间(一字节有8位,共256个编码空间),而汉语、日语、及朝鲜文等文字语言的字库量远大于256个,所以改用两个字节来储存。同时,也是因为中日韩等文字的书写习惯,如果统一使用全角字符的话,排列起来也显得整齐。出现显示只有一个横杠是因为使用了全角的“¥” ,在安卓上会出现兼容的问题,使用半角的就没问题了。可以选中看下区别,全角的明显会宽(一个汉字的宽度),半角(半个汉字的宽度)。全角占两个字节,半角占一个字节。
2022-11-01 19:38:11 1947
原创 git stash用法
使用场景:多个需求同时开发的时候,需要不同的分支,在一个需求没开发完,想去另一个分支的时候,又不想。该命令不会将内容从对堆栈中删除,也就是该命令能够将堆栈的内容多次运用到工作目录。将堆栈中的内容恢复到当前分支下。栈中只有一条的时候使用,以免混乱。,区别是可以加⼀些注释,添加注释,⽅便查找。注:该命令将堆栈中最新保存的内容删除并恢复。写在前面:从栈中用的时候千万别搞错了!和当前⽬录的差异,显⽰做了哪些改动,默认。的状态,把当前的修改的保存到。中的操作来删除栈里面的内容。栈,等以后需要的时候再恢复,
2022-10-16 17:31:25 1267 2
原创 73. 矩阵置零
思路:因为m和n最大是200,所以就算每个数都不一样最多有400个不同的数,所以我们从0到400中必然能找到一个数与矩阵中所有数都不一样的值,我们就用这个数来标记就可以了。注意:标记的时候不能改变原先为0的值,因为后面还要用原先为0的值来做改变。最后把标记的值变成0就可以了。时间复杂度:O(401*mn)空间复杂度:O(1)
2022-10-07 13:42:41 97
原创 229. 多数元素 II
数据大于floor(n/3)向下取整的数最多只有两个(仔细想想),或者1个,或者没有。这样的话就采取类似最近很火的游戏“羊了个羊”消除,当然区别就是我们槽位只有2个,点击第三个的时候只有不一样这三个才会同时消除,如果相同就叠在对应的槽位上,这样最后剩下的两个槽位上面的值才有可能大于floor(n/3),为什么说有可能,因为存在一种特殊情况:【3,2,3】,这种情况下通过我们的算法最后会出现,第一个槽位剩下3,第二个槽位剩下2,但是只有3是满足的,所以最后我们再把这两个值验证一下即可。
2022-09-30 21:44:23 560
原创 Error: INSTALL_FAILED_TEST_ONLY
原因:Android Studio 3.0之后,在打包生成debug apk时,在apk的manifest文件的application标签里自动添加 android:testOnly="true"属性。android:testOnly=“true” 这个标记原本是用来标记测试用的,所以带这个标记的包一般情况下是不能安装上的,需要使用特殊的方式安装(添加-t标志)。方法一:在项目中的全局配置gradle.properties文件中设置:android.injected.testOnly=false。
2022-09-14 21:11:29 1345
原创 各位好友,中秋节快乐
好久不写博客了,排名也跌了不少,从之前的5000到现在20000多,释怀了。也给自己一个提醒吧,不能躺平,要持续学习才行。因为作者是做客户端的,现在在考虑学习一些新的知识,防止客户端凉了。不过在搞其他的东西之前,自己还是坚持写写算法,也不说坚持了,单纯喜欢。感觉英语还是很重要的。为什么这么说,因为在平时变量起名字的时候,英语不好,都不知道起什么名字好,记得有一次写完m后面就不知道写啥了。好久没更新文章了,最近因为工作变动,一直在等消息,没心情写博客。现在消息确定了,还算是好消息。哈哈,什么消息就不说了。
2022-09-10 22:16:51 883 2
原创 给textView设置文字渐变色
一定要先设置shader,在设置字。如果先设置的字或者在xml里面设置的字,就需要设置完shader之后调用一下触发重新绘制的代码。4.最后一个参数为渐变的效果,我这里选择的就是从开始的颜色渐变到结束的颜色,这里不再赘述,感兴趣的可以去搜下各种渐变的效果。viewBinding.title这是一个textView。3.第5个参数为开始的颜色,第6个参数为结束的颜色。2.前4个参数为描述位置,我这里描述的是从上到下。从上到下x=x1y改变。从左到右x改变y=y1。......
2022-07-29 19:50:53 1481
原创 recycleView自定义ItemDecoration解决列表第一个item和最后一个item的间距难统一问题
经常碰到一些场景,每个列表的第一个和最后一个可能间距不一样(意思就是说每个item统一设置一样的间距的话,会不符合自己的预期),此时我们有一个很好的做法就是自定义 ItemDecoration
2022-06-24 19:02:24 1657 2
原创 安卓利用动画设置背景颜色
利用插值器和 ArgbEvaluator() 来做的插值器用来做动画,ArgbEvaluator() 用来做颜色渐变上代码:private var valueAnimator: ValueAnimator? = nullprivate val evaluator by lazy { ArgbEvaluator()}/** * 背景色渐变动画 */private fun startValueAnimator(view: View) { valueAnimator =
2022-05-21 15:06:28 457 1
原创 812. 最大三角形面积
题目链接:力扣思路:第一想法要用什么算法呢?然后看了一眼是简单题,那肯定用不到啊。看了一眼数据,最多50个点,好吧,果断O(n^3)暴力解决。枚举所有三角形的面积,每次取一下最大值即可。因为题目给出了三个顶点的坐标,所以我们直接用向量来计算三角形的面积即可。公式:在中,,,则上代码:import kotlin.math.absimport kotlin.math.maxclass Solution { fun largestTriangleArea(points: Array
2022-05-15 18:54:40 263
原创 11. 盛最多水的容器
题目链接:力扣思路:首先吐槽下kotlin的for循环(我感觉kotlin的for循环真的好难用),还有就是啥时候有一种语言,各种集合的遍历方式是统一的就好了(目前在我的认知里面还没有)。这道题目是典型的双指针问题。定义两个指针 i,j ,然后开始遍历height数组即可。怎么遍历呢?首先我们需要思考下,在宽度一定的情况下,高是怎么确定的呢?很简单,因为是装水,所以高是通过矮的那边确定的。这样我们就可以做了。找到宽(j-i),找到高(左右指针指向的较矮的那边的高度),两者相乘即可。然后较矮的那边的指
2022-05-03 14:26:24 867 1
原创 908. 最小差值 I
题目链接:力扣思路:1. 当 maxValue - minValue > 2 * k 时,说明在2K的范围内最大值与最小值的差最小能变成 maxValue - minValue - 2 * k2. 当 maxValue - minValue <= 2 * k 时,说明在2K的范围内最大值与最小值的差最小能变成0有人可能会问,不考虑别的值吗?为什么只考虑最大值和最小值?因为最大值与最小值的差能缩小的范围 > 别的值能缩小的范围。也就是说,最大值与最小值的差能缩小到的值,别
2022-04-30 16:55:19 181
原创 819. 最常见的单词
题目链接:力扣思路:题目不难,需要注意下细节。一定不要只用空格作为分隔符,然后每个单词删除不是字母的字符,有的样例是这样的“a,b,c”,这是三个字符,但是没有空格,所以就需要用题目给的标点符号和空格进行分隔,“it's” 题目认为这也是两个单词,所以就直接用题目给的标点符号和空格分隔即可。分割完成后,可能存在空字符串,所以需要过滤出length>0的字符,最后进行逻辑处理即可(逻辑处理过程看代码,简单题不做说明了)上代码:class Solution { fun mostC
2022-04-17 15:38:47 306 1
原创 479. 最大回文数乘积
题目链接:力扣思路:首先这个题我也是猜测了一下,就是n位数,最终的答案一定是2*n位数,我猜的。因为答案是2*n位数,这样的话我就枚举前n位数(从大到小),然后拼接后面n位数,得到一个2*n位数的回文。此时外层循环最大循环次数为1e8,然后里面就从得到的这个2*n位数下手,找到2个n位数的乘积是它就可以了,能找到就返回,找不到就接着找。内层循环就从最大的n位数到sqrt(2*n位的这个数) 或者从sqrt(2*n位的这个数)到最小的n位数(不知道为什么用sqrt作为一个枚举边界的可以自行学习,或者在底下
2022-04-16 17:28:09 2363
原创 算法技能树测评
选择算法技能树测评是因为自己之前也是打算法,也是高兴了也会写几个算法。这次看到csdn出了算法技能树测评的活动,也想看下csdn的刷题方便不方便。用了一下,吐槽点挺多的,pm,ui,rd不要生气哦~~做到好的,好的部分简单说下昂~~这个小叶子做的不错,做完一个题,会有记录~~做的不好的,只说下几个小意见(个人见解,你们可以做下AB实验)。【UI界面】【产品交互】第一个问题:刚进来为什么不是练习题,而是直接展示答案,这点很奇快第二个问题:既然是一对一,为什么还.
2022-04-10 15:43:19 568 2
原创 307. 区域和检索 - 数组可修改
树状数组的单点更新,区间求和。不懂树状数组的可以去网上学习。单点更新和区间求和的时候需要注意一下,因为树状数组是从1开始的,所以单点更新的时候需要更新的位置为 index+1 ,区间求和的时候需要 right + 1 减left(这个地方大家自己思考一下,还是不懂的可以在评论区指出哦~~~)
2022-04-04 16:09:45 441
原创 2028. 找出缺失的观测数据
题目链接:力扣思路:简单构造题。sumN = n数组的和,sumM = m数组的和。这个题就是构造sumN = (n+m)*mean-sumM 这个数。通过n个数的和构造词出sumN这个数,限制条件就是这n个数的取值范围[1,6]。这不就很简单了。首先考虑不可能的情况。考虑两个极限值:1. sumN > n * 6 说明n个数全是最大值6也不行2. sumN < n 说明n个数全是最小值1也不行除了这两种情况都是可行的情况。可行的情况怎么构造呢?我这里考虑通过6和1来构造
2022-03-27 17:19:07 695
原创 682. 棒球比赛
题目链接:力扣思路:用栈来模拟操作就可以了。注意:留意下 “+” 的操作。上代码:class Solution { fun calPoints(ops: Array<String>): Int { val mStack = Stack<Int>() var result = 0 ops.forEach { str -> when (str) { "+"
2022-03-26 15:49:42 455
原创 72. 编辑距离
题目链接:力扣思路:先上递推式:dp[i][j] 代表 word1 中前 i 个字符,变换到 word2 中前 j 个字符,最短需要操作的次数注意:需要考虑 word1 或 word2 一个字母都没有,即全增加/删除的情况,所以初始化值dp[0][j] 和 dp[i][0](看代码逻辑)状态转移改:dp[i][j] = dp[i - 1][j - 1] + 1删:dp[i][j] = dp[i - 1][j] + 1增:dp[i][j] = dp[i][j - 1] + 1按顺.
2022-03-13 16:43:00 834
原创 1143. 最长公共子序列
题目链接:力扣思路:动态规划入门题先上递推式:递推式怎么来的呢?给定两个字符串 S1 , S2,设序列 S1 = {x1, x2, x3 ... xn} , S2 = {y1, y2, y3 ... ym} , 的最长公共子序列是 S = {z1, z2, z3 ... zk} 。1. 如果 xn = ym , 则 zk = xn = ym , 那么 S[k - 1] 就是 S1[n - 1] 和 S2[m - 1] 的 最长公共子序列2. 如果 xn != ym , 且zk != ..
2022-03-13 15:58:40 483
原创 安卓冷启动的时候进行调试的解决方案
有时候我们调试,需要在电脑冷启动的时候进行调试,或者说刚冷启动就要断点。此时就需要先把进程挂起再进行调试。挂起后,我们正常进行调试即可,此时就可以做到,调试开始,才能进入App的情况了。使用方式:在Terminal中运行下面一行即可/adb shell am set-debug-app -w {package_name}package_name(看下方的红框):...
2022-02-21 19:46:59 1369
原创 安卓气泡弹窗
先画好自己的气泡布局 pop_window_view.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:backgroun
2022-02-14 11:19:38 2738
原创 136. 只出现一次的数字
题目链接:力扣思路:任何一个数与0“异或”是他本身,两个相同的数“异或”为0。上代码:class Solution { fun singleNumber(nums: IntArray): Int { var result = 0 for (i in nums.indices) { result = result xor nums[i] } return result }}...
2022-01-23 15:42:14 340
原创 125. 验证回文串
题目链接:https://leetcode-cn.com/problems/valid-palindrome/思路:两个指针前后一起遍历一遍即可。遍历的时候,碰到不是字符和数字的就跳过,是数字和字符的就判断是不是相等,不相等就不是回文串直接返回false。最后遍历完成,没出现返回false的情况,就说明是回文串,返回ture。上代码:class Solution { fun isPalindrome(s: String): Boolean { val str = s.t
2022-01-16 21:58:22 116
原创 安卓设置背景某个方向有圆角,某个边有border
width是border的宽度,取消掉就 -width 就可以了,我这里直接写的-1dp也是可以的哦~~~<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="-1dp"> <shape> <c.
2022-01-05 18:08:19 1640
原创 安卓背景用shape设置渐变色
startColor:开始的颜色endColor:结束的颜色angle:旋转多少度,设置颜色从哪儿个方向开始渐变<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="270" android:startColor="#
2022-01-05 15:33:54 1918
原创 View Binding 解决kotlin直接用VIew的id导致的IllegalStateException
之前用java获取view是通过 findViewById() 来获取view的,需要写好多这样的代码,很繁琐,后来kotlin的话,是可以直接通过view的id来进行各种操作,但是经常会java.lang.IllegalStateException: ****** must not be null在这里告诉大家一种既简单又可以摆脱exception的方法!!!谷歌官网:https://developer.android.com/topic/libraries/view-bind...
2022-01-04 15:54:16 1830
原创 给LinearLayout的addView()、removeView()添加动画
给LinearLayout的addView()、removeView()添加动画
2021-12-23 10:25:19 2867 1
原创 Only fullscreen activities can request orientation
如果你没经历过这个bug,这个bug真的很坑的。首先这个bug只有安卓8才会有问题,注意:只有8.0.我造成错误的原因是写了这样一行代码:// 禁用横屏requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT解决方法:1. 这个方法,可能会造成安卓8,使用你的页面的时候出现横屏。if (Build.VERSION.SDK_INT != Build.VERSION_CODES.O) { requeste
2021-12-17 18:13:51 963
原创 安卓使用RecyclerView的notifyItemInserted()的坑
大多数人经常会碰到:java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{**** position=13 id=-1, oldPos=1 ******我是在这样的场景下出现的这个问题:scrollToPosition(0) // 快速定位到列表顶部notifyItemInserted(0) // 插入一条数据为什么会
2021-12-12 15:33:32 5245
原创 小红的375(思维+数学)
题目链接:登录—专业IT笔试面试备考平台_牛客网牛客网是互联网求职神器,C++、Java、前端、产品、运营技能学习/备考/求职题库,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力https://ac.nowcoder.com/acm/contest/11218/F题目描述小红拿到了一个正整数。她希望你能重排这个正整数的数位,使得它能被 375 整除。你能帮帮她吗?输入描述:一个正整数,大小不超过 10^{300000}输出描述:
2021-12-05 13:20:05 1369
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人