随笔分类 - 算法
摘要:1. 十进制转二进制 原理:给定的数循环除以2,直到商为0或者1为止。将每一步除的结果的余数记录下来,然后反过来就得到相应的二进制了。 比如8转二进制,第一次除以2等于4(余数0),第二次除以2等于2(余数0),第三次除以2等于1(余数0),最后余数1,得到的余数依次是 0 0 0 1 , 反过来就
阅读全文
摘要:一般递归: 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归
阅读全文
摘要:package xcc.mapTest; /** * @Decription: 接口 * @Author: * @Date: * @Email: **/ public interface Function { /** * 要做的事情 */ void invoke(); } package xcc.mapTest; import java.util.Map; /** * @Decription: 代
阅读全文
摘要:1. 巧用数组下标 数组的下标是一个隐含的很有用的数组,特别是在统计一些数字,或者判断一些整型数是否出现过的时候。例如,给你一串字母,让你判断这些字母出现的次数时,我们就可以把这些字母作为下标,在遍历的时候,如果字母a遍历到,则arr[a]就可以加1了,即 arr[a]++; 通过这种巧用下标的方法
阅读全文
摘要:反射机制是Java动态性之一,而说到动态性首先得了解动态语言。那么何为动态语言? 一、动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化。比如常见的JavaScript就是动态语言,除此之外Ruby,Python等也属于动态语言,而C、C++则不
阅读全文
摘要:二分查找也是最简单的算法之一了。但是最近发现一般的写法会有问题。 注意第五行代码: 这里。left + right 是会溢出的。只要这个数组我们开的足够大,比如1100000000,就能重现这个问题,虽然这需要我们费点内存。因此正确的解法是:int mid = (low + high) >>> 1;
阅读全文
摘要:题目描述 对于一个非空字符串,判断其是否可由一个子字符串重复多次组成。字符串只包含小写字母且长度不超过10000。 样例1 输入: “abab” 输出: True 样例解释: 输入可由”ab”重复两次组成 样例 2 输入: “aba” 输出: False 样例 3 输入: “abcabcabcabc
阅读全文
摘要:1、递归与分治 递归算法:直接或者间接不断反复调用自身来达到解决问题的方法。这就要求原始问题可以分解成相同问题的子问题。 示例:阶乘、斐波纳契数列、汉诺塔问题 斐波纳契数列:又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:
阅读全文
摘要:序:HTTPS更安全,为什么? 因为HTTP协议本身毫无安全性可言。 当你访问一个纯HTTP的网站(以及与这个网站有任何网络交互)时,你发出去一个请求。在这个请求到达网站服务器的路途上,不管是你家的路由器、你楼层的路由器、你小区的路由器、你当地电信的机房里,再一直到那个网站的服务器机房之间的所有网络
阅读全文

浙公网安备 33010602011771号