分类 杂 下的文章

给定一个数组,给定一个目标数,得到数组中两个相加等于目标数的下标

解:

private int[] test(int[] nums,int target) {
        int[] result = new int[2];
        for (int i = 0; i < nums.length - 1; i++) {
            for (int j = i+1; j < nums.length; j++) {
                if (nums[i] + nums[j] == target) {
                    result[0] = i;
                    result[1] = j;
                }


            }
        }
        return result;
    }

这道题一开始还愣了下。发现人家推荐直接暴力解,好吧,那就暴力解吧,自己一开始写的考虑边界的时候,考虑不周,如果需要遍历不是很好,通过i,j互相限制,保证数组不越界。

leetcode

最近事情颇多,忙不过来的赶脚,加上暑假终于过去,开始努力起来了。

心血来潮,复习一波架构
mvc定义
m层:model 业务逻辑处理
v层:view 处理数据显示的部分
c层:control activity处理用户交互问题
特点:耦合性低,可扩展性好(这两相辅相成),模块职责划分清晰

类似activity中控制model层去下载东西,最后通过接口回调给activity,activity再去通知view层展示下载完成的样式。


mvp定义
因为在Android中view层大部分是layout下的xml文件,能力非常有限,所以activity承担了大部分控制view的功能,导致activity会非常的冗余,所以引出mvp架构
m层:model 还是业务逻辑和实体模型
v层:activity 对应activity,负责view的绘制和用户交互(谷歌推荐的todo-mvp是通过加一个fragment,将fragment当成view,更加直观和理解)
p层:presenter 负责view和model的交互

特点:耦合性更加低,因为mvc中,view层是可以和model层进行联系的,而在mvp中,view和model是无法直接联系的,为什么说这个很好呢,因为在Android中,view的操作全部需要在UI线程(主线程),如果数据操作和视图操作全部分离的话,通过桥梁presenter进行通信,更加符合Android实际开发。

为啥不说mvvm呢?因为那个貌似是前端用的比较多。而且一般看,貌似跟dragger2联系比较多,那个框架我不是很熟,等待我学习后,再补充吧。
话说,七牛云的插件有点问题,我每次发图,得先保存七牛云再链接到blog,有点复杂。

最近android圈子有个文章引发讨论。就此我谈谈我的观点。

每每有同事问我,啥啥资源怎么下载的时候,我都十分乐意分享(非开车)。其实有些时候这些资源很容易找到,搜索引擎一开,关键字打一打,总会有所收获。最多在筛选良莠不齐信息的时候,会花费大量的时间成本。但相比于无结果,其实这是一种比较容易获取资源的方式。

我是学android的,以前学习的时候,每每搜到一些培训视频(人家盗出来的),虽说不是很道德,但确实从中获取了知识。甚至因为培训视频流出太多,一些培训机构(*播客、马),直接大大方方的把曾经那些网盘见的视频给放了出来,打打口碑。可以说,在学习上,如果人有毅力,买买豆瓣上推荐的书籍,看看视频,至少很容易踏进编程的门槛。虽然对于培训机构就亏了(但是不是按照广告说法,我不是他的潜在用户,但是算是免费推广员?),但是对于个人来说,相当于也是免费学习了知识,获取了知识。相对于开源。很多人开源,或是锻炼技术也好,或是为了名声,或者知识爱好等等。一旦项目大了,star的人多,issue的问题也开始奇葩了。或许就涉及到免费的门槛太低,导致层次不齐,靠自觉没用。于是,不知道什么时候,知识付费这种形势就突然大规模出现。无论是喜马拉雅音频,还是荔枝等等,都出现了付费音频。将书或者道理掰碎给你。而我一直喜欢混的知乎突然一段时间上线了付费live,看到曾经的一直回答android问题的也开通了,我也去参加一次,凑凑热闹可是回头一看,这其实没说啥啊。你说道理吧,也对,你说知识吧。他面试的道理,其实去面试两次也知道了。需要的知识,看看招聘要求也能知道大概。所以我10元就这样没了吗?

回想一下,其实这也是3、4月9、10月招聘季节,利用了我们这群迷茫的羔羊心态,说是指点迷津不如说是买份保险。你说这份知识付费值吗?那就需要看角度了,如果是心安,may be。知识吧,就算了,那是多参加几次就能获取的信息。所以你问我值吗,我觉得挺亏的。我后来又买过*课网上的实战视频,讲道理,讲师也是讲书本上的知识掰碎了喂你吃,但是好处是,实战效果,从代码层面,为何来的思想层面讲解,好处也是显而易见的,价格也在2、3百左右,不是很贵,课程时长也是可以的,还有专门的群负责交流解答。这种模式我是乐意接受的。毕竟录视频也是要花费时间的,而且我切切实实获取了知识。(因为我的懒惰)虽然你可以说,他的那些知识也是可以百度搜到的啊,是的,没错。相当于花了钱,将免费的知识归集给我(让我学)。至少我觉得这钱不是很亏的样子。

知识付费,本质上也是利用信息不对称赚钱,这种钱可以赚,毕竟信息采集有时间成本啊,有时候能加速这一过程其实都算可以的。但是如果一种知识付费是收智商费的呢?那我本质上是抵制的,毕竟利用别人的迷茫赚人头钱不好。话又回到开头的凯哥哪里,你觉得我是赞成还是反对?本质上,我作为一个彩笔,我也是想深入android原生的知识,而那些课程也是很符合我的胃口,除了价格昂贵。但是通篇你看到逼你付费了吗?没有,但是,对于我这种想学又不肯付费的用户来说怎么办?你看看他文章大纲,是不是发现了什么盲点。我完全可以利用大纲去搜索引擎学习啊,自己筛选知识啊,甚至可以去总结一下写blog,岂不美哉。

所以啊,有时候看到东西的时候,别上来就是走程序,说一堆垃圾话(据我所看时间,已经有60多人报名了)。不喜欢就看免费课程,知识付费已经是趋势,没办法逆转,上来喷也没用,不如利用下人家搭的框架,你总能学到你想要的知识,最多知识晦涩点,难理解点。毕竟大家都是为钱驱动的(我是指我这种人),360行,行行出状元,除非人家也是收智商费的,否则你凭什么阻扰人家呢?这也是凭本事挣的钱。如果哪天我发达了,我指不定也学强东写写“我的奋斗史”,吸一波粉呢。

本文纯属扯淡,自从高考后就没怎么写文章了,写着写着都忘了自己的中心主旨是啥,如果各位看不懂,就当在下放屁,23333。

前几天谷歌开发者大会又开始大力推荐他的Flutter了。唉,作为一个懒惰的码畜。错过了RxJava,错过了kotlin,看到Flutter本想学学的,也被新创建的Drat语言伤透了心。但是谷歌爸爸自研新系统的消息愈演愈烈,没办法,还是稍微接触下先,准备学习吧。
首先安装环境就发现一个蛋疼的问题,Flutter有个中文网站,里面的中文教程windows安装的第一篇是0.2.8的环境,最新貌似变成0.3.2了,果然测试版开发就是快。这不是重点,重点是,git下载的话,你会后悔的,如果不想变换国内节点配置,直接下载官方的压缩包就是了。然后还是常规的加入环境变量。
碰到问题如下:

  1. 0.2.8环境不知道和3.1.2的android studio产生了什么奇妙的化学反应,在我这台笔记本死活卡在创建flutter应用中。换成0.3.2就好了。
  2. flutter doctor --android-licenses 在cmd中是正常的,且同意过了,但是在android studio的初始工程中,死活报错,我开始怀疑是环境变量Android sdk配错了,但是不是,这个bug找了半天,才在stackoverflow看到。android的sdk.dir莫名是上一个工程的sdk目录。切换就好了。
    运行成功截图如下。

请输入图片描述
改成符合标题的

请输入图片描述
本文只是记录下,运行flutter的hello world的坑。2333.学习等慢慢啃吧