写在RobinAlgo上线的前一天
写在RobinAlgo上线的前一天
在写这篇文章的时候我特意去看了一下git的提交记录, RobinAlgo创建于5月13日, 兜兜转转也半年了, 网站略显简陋, 但是也是一个新的开始.
0. 起做点自己想做的事情在我还在大学的时候就一直萦绕在脑中, 不过因为各种各样都能知道的原因一直没有付出于行动, 毕业到现在的工作中这个念头也一直浮现, 也开始准备了一点点的事情, 但是到最后都是不了了之. 不过随着三月从之前的公司离职之后这个念头就愈发的强烈, 一边是都说的大环境不好的情况, 一边是有点为了做事而做事的想法. 不过最后的结果也显而易见了, 经过了一段时间的思考后还是觉得要努力一下.
在思考的过程中想了很多也, 最初的开始还是感觉先有个工作, 然后先做点副业, 尝试经营下副业, 有一定的成效后再把副业转为全职, 不过最后还是没有选择这个, 一是之前工作的情况就一直是这个想法, 但是基本没有什么产出. 后面开始做RobinAlgo的时候才发现只用副业的精力的话不论效率还是产出的话都远远达不到我的要求. 人的精力还是有限的, 加上对自己的清晰的认知, 最后的还是选择了这条路.
...
网页中实现长图固定宽高滚动展示
网页中实现长图固定宽高滚动展示
最近的事情比较多, 不能体系的整理相关资料, 所以开始多做一些小功能和解决小问题.
问题的来源是做网站的时候需要实现一个比较长的图片, 固定宽度, 默认显示图片顶部的内容, 图片有最大的高度, 当超过最大的高度的时候可以滚动展示. 避免整个页面因为图片拉伸的过长.
功能比较简陋也比较简单, 不过我在实现的时候耽误了不短的时间. 记录一下,简单的问题有时候思路容易陷入胡同中导致迟迟不能解决. 这里记录下, 希望可能帮到有需要的人
下面直接看下效果图
demo 比较简陋, 效果也很简单
12345<div style="width: 1000px; height: 400px; overflow-y: auto;"> <img src="http://image" style="width: 100%; overflow-y: auto;" /></div>
LikelyHttp -- 可能是最简单的retorfit二次封装库
LikelyHttp – 可能是最简单的retorfit二次封装库
retorfit + okhttp可能现阶段最常见的android网络请求库了,网上针对retorfit和okhttp二次封装的库层出不穷, 其中有很多很优秀功能也很强大的库,但功能强大和内容丰富很有可能带来了更多的耦合从而导致这些第三方的库在使用的时候不尽如人意,很多的时候我们的使用第三方的库的目的是使得我们的使用更加的简洁和简单. 二是网络库是一个使用频率十分高的库,为此为自己封装一个自己使用更加顺手的库,为此才有了个做了减法的LikeluHttp.
如何使用12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970//定义OkHttp相关, 注册拦截器相关的OkHttpClient mOkHttpClient = new OkHttpClient.Builder() .addInterce ...
如何用最简单的方法发布Android library到jCenter(Bintray)
如何用最简单的方法发布Android library到jCenter(Bintray)
最初的想法是做一个很简单基础的网络请求的封装作为一个自己常用的网络库(这是另一个故事了), 在这个故事里, 遇到了很多… 意想不到的问题,在此留作记录,希望可以帮助到大家.
不想看太多只想简单操作就完事部分Bintray 注册(虽然啰嗦, 但是这个不提的话很容易遇到问题的)Bintray注册地址: https://bintray.com/signup/oss 注意这里的地址是有带有oss的,是注册的个人账户
以下是个人注册的页面
以下是组织注册的页面,可以看到需要你填写额外的内容
通过github授权登录就可以了,填写相关的信息就可以了
在上传之前, 我们要先建立一个Repository
Type记得要选择Maven
创建成功后页面显示如下
本地Library Module修改本地需要修改下面三个文件
项目的gradle文件 加入下面内容
12classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugi ...
shel(一)--基础
shell(一) – 基础什么是shell先看下官方的定义
Unix shell:一种壳层与命令行界面,是Unix操作系统下传统的用户和计算机的交互界面。普通意义上的shell就是可以接受用户输入命令的程序。它之所以被称作shell是因为它隐藏了操作系统低层的细节。Unix操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言。
翻译过来就是说,Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核.
shell可以理解为一个特殊的应用程序
shell本身是由c语言编写而成的,shell实际上是一直解释性语言
shell和bash的区别这两个是包含的关系,bash是shell的一种,其中linux默认的shell就是bash.
bash可以说是shell的脚本解释器
第一个shell脚本123456789#!/usr/bin/env bash#像前面所说的,bash是shell的脚本解释器. #这种写法可以最大程度的避免夸平台下脚本无法运行的问题#后面相关文件均使用此默认配置echo "He ...
Leetcode70-ClimbingStairs(爬楼梯)
Leetcode70-ClimbingStairs(爬楼梯)LeetCode:https://leetcode-cn.com/climbing-stairs/
LeetCodeCn:https://leetcode-cn.com/climbing-stairs/
题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。
示例
示例 1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1 阶 + 1 阶
2 阶
示例 2:
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1 阶 + 1 阶 + 1 阶
1 阶 + 2 阶
2 阶 + 1 阶
解题思路-迭代法一道很经典的题,这个题可以转化为求斐波那契数列数列第n项的问题.可以才用递归的方法,不过在递归的过程中有大量的重复计算导致其性能一般(可以通过设置计算缓存来避免).
初次之外,还可以用迭代的方法来降低消耗的资源.
原理很简单,应为斐波那契数列从第三项 ...
LeetCode58-LengthOfLastWord(最后一个单词的长度)
LeetCode58-LengthOfLastWord(最后一个单词的长度)LeetCode:https://leetcode-cn.com/length-of-last-word/
LeetCodeCn:https://leetcode-cn.com/length-of-last-word/
题目描述给定一个仅包含大小写字母和空格 ‘ ‘ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例
输入: “Hello World”
输出: 5
思路很简单的一道题,主要是测试用例中’ ‘引起的各种问题,我们可以通过trim去除首位的’ ‘,然后再通过split截断’ ‘,返回最后一个字符串的长度即可.
代码实现12345678public int lengthOfLastWord(String s) { s = s.trim(); String[] strs = s.split(" "); if (strs.length == 0){ ...
LeetCode53-MaximumSubarray(最大子序和)
LeetCode53-MaximumSubarray(最大子序和)LeetCode:https://leetcode-cn.com/problems/maximum-subarray/
LeetCodeCn:https://leetcode-cn.com/problems/maximum-subarray/
题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
解题思路-分治此条件下,我们可以发现连续子数组的序列和最大的时候其首位不能为负数,原因很简单,如果首位为负数,当拿掉首位时,其剩余的数组和必然会增大.同理可扩展,如果某几项的和为负数时,则这几个数也不能作为和最大的子数组的开始
当了解了以上的内容时,我们可以采用分治的方法来解决此问题.我们已一个非负数为开始,直到和为负数为结束,再此过程中比较其和的最大值并记录,重复以上过程直到遍历到数组结束.
图解相关思路下面已[-2 ...
LeetCode27-RemoveElement(移除元素)
LeetCode27-RemoveElement(移除元素)LeetCode:https://leetcode-cn.com/problems/remove-element/
LeetCodeCn:https://leetcode-cn.com/problems/remove-element/
题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
示例
示例 1:
给定 nums = [3,2,2,3], val = 3,
函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。
你不需要考虑数组中超出新长度后面的元素。
示例 2:
给定 nums = [0,1,2,2,3,0,4,2], val = 2,
函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。
注意这五个元素可为任意顺序。
你不需要考虑数组中 ...
LeetCode26-RemoveDuplicatesFromSortedArray(删除排序数组中的重复项)
LeetCode26-RemoveDuplicatesFromSortedArray(删除排序数组中的重复项)LeetCode:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
LeetCodeCn:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
示例
示例 1:
给定数组 nums = [1,1,2],
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
你不需要考虑数组中超出新长度后面的元素。
示例 2:
给定 nums = [0,0,1,1,1,2,2,3,3,4],
函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, ...