LeetCode刷题之twoSum两数之和Go语言版

题目描述

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

测试示例

示例 1

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

- 阅读剩余部分 -

使用容器快速搭建Typecho博客

开启了新的博客https://kCAT.io,欢迎大家来访。

搭建这个博客也是一时兴起,想起来就干,结果一共花了不到3、4个小时的时间就完全搞定了,把基本的过程记录下来以便后续参考使用(比如重做系统时)。

博客选型

过往使用过的博客系统主要是Wordpress,Wordpress优势是功能全面、受众广泛、社区活跃,不足就是整体有一些繁重不够轻量。之前就了解到国内有一款轻量级的开源博客系统是Typecho,和Wordpress一样是PHP语言开发,使用MySQL数据库,同样的支持皮肤和插件。Typecho整体特别的简洁,代码一共不到500kb,对于比较专注在内容上喜欢简单的用户来说是个很不错的选择。选好博客产品后接下来就看如何部署了。

第一步我们需要一台服务器

硬件及操作系统

云厂商

现如今的云服务都很成熟,需要购买服务器已是非常的便利。无论是选择阿里云、腾讯云还是华为云,头部几家厂商的购买流程、价格、服务都大同小异,大家可以按各自的喜好选择。我这里选择的是腾讯云(个人更喜欢小马哥的形式风格)。

- 阅读剩余部分 -

PHP10进制和36进制互转支持64位整型

背景

业务上存在缩短ID长度的诉求,想到可以考虑把整型转成36进制的方法。于是去网上搜索转36进制的实现代码,通过百度搜到了几个实现都不是很好(有的换算直接就是错的),然后换谷歌搜索居然搜到了自己多年前收藏的一份代码(自己完全忘记了做过这个事情)。只是之前的实现只支持32位,64位整型计算会出现误差,于是我又优化了一下这份实现,通过bcmath扩展库来支持64位整型的转换。

结果

10/36进制转换,支持64位的计算(需要bcmath扩展库的支持)

if (!function_exists('base36_encode')) {
    /**
     * 十进制数转换成三十六进制数
     * @param (int)$num : 十进制数
     * return (string) :三十六进制数
    */
    function base36_encode($num) 
    {
        $num = intval($num);
        if ($num < 0)
        {
            return false;
        }
        $charArr = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
        $char = '';
        do
        {
            $key = bcmod($num , 36);
            $char= $charArr[$key] . $char;
            $num = bcdiv(($num - $key),36, 0);
        }
        while ($num > 0);
        return $char;
    }
}

if (!function_exists('base36_decode')) {
    /**
     * 三十六进制数转换成十进制数
     * @param (string)$char :三十六进制数
     * return (int) :十进制数
     */
    function base36_decode($char){
        $charArr = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
        $len = strlen($char);
        $sum = 0;
        for($i=0; $i<$len; ++$i)
        {
            $index = array_search( $char[$i], $charArr);
            $sum = bcadd($sum, bcmul($index, bcpow(36, $len-$i-1, 0)));
        }
        return $sum;
    }
}

- 阅读剩余部分 -

注册了一个新域名kCAT.io

今天注册了一个新域名,kcat.io

背景

移动互联网的到来,二维码成为了新的入口,对于是否拥有一个好的域名变的不那么重要了,毕竟在移动互联网的使用场景中很少有通过输入网址的方式来访问资源了,更多的变成了扫码进入或者分享链接。

也不知道为什么,自己对域名却有着一丝执念,这一丝执念不同于把域名当作买卖商品的人,他们更多关注的是所收揽的域名是否能带来收益。而我对域名的执念更像是一种随缘的收藏(域名也确实快要成为古董了),这一丝执念让我过一段日子就又会想找找有没有自己喜欢的域名可以注册。

- 阅读剩余部分 -