![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基本算法
糖气包
Life is short, Play more!
展开
-
如何反转数组?
解决方案 本博文讨论的“数组反转”是直接修改原数组,而不是重新创建一个新数组进行反转。一般有两种算法,一种是计算出两者的索引值,据此进行交换,可以参考StringBuilder类中的reverse方法;一种是利用双指针,移动数组两端进行交换。 算法实现 第一种方法的实现代码如下所示: public void reverse(int[] ar...原创 2019-05-19 21:20:47 · 1192 阅读 · 0 评论 -
如何反转单向链表?
这里默认不能修改节点中的值,不能新建新的链表来进行反转,反转链表只能在原单向链表上进行。具体代码如下所示: public class ListNode{ public int value; public ListNode next; public ListNode(int value){ this.value = value; }...原创 2019-05-19 22:21:15 · 269 阅读 · 0 评论 -
“基本算法”系列博文的说明
最近在刷Leetcode,发现里面很多题目都会用到一些固定的算法,为此,我萌发了将其总结起来的想法,“基本算法”系列博文也由此诞生,它将会与“Leetcode”系列博文同步更新,两者搭配使用,效果更佳。 该系列博文适用于有数据结构和算法基础的人,博文并不会过多介绍算法中涉及的数据结构原理以及算法本身的原理,博文的侧重点是:使用何种算法解决问题,这些算法的代码实现,...原创 2019-05-16 17:47:04 · 164 阅读 · 0 评论 -
如何在有序数组中搜索特定数据?
解决方案 在数组中搜索数据,一般我们都是采用遍历的方式,复杂度为O(n)。有序数组中包含大小信息,可以将其视作二叉搜索树结构,故该问题可以使用二分法解决。关于二分法的一些介绍,可以提供一个传送门:二分法。 算法实现 一般而言,二分法都有两个版本,一种是C++中的左闭右开(下界)版本,一种是Java中的左闭右闭版本。 左闭右开版本 左闭右开版...原创 2019-05-16 22:52:00 · 1438 阅读 · 0 评论