![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
Yi骑绝尘
这个作者很懒,什么都没留下…
展开
-
一个无序数组找其子序列构成的和最大,要求子序列中的元素在原数组中两两都不相邻
一个无序数组找其子序列构成的和最大,要求子序列中的元素在原数组中两两都不相邻:可以用递归或者循环解决,现有数组arr[暂不舍定数量],最大不相邻数之和=maxsum,思路:1、假如数组只有1 个值,那么maxsum1 = arr[0],2、假如数组有2 个值,那么这个最大和maxsum2 = max(arr[0],arr[1]),3、假如数组有3 个值,那么最大值肯定要么是arr[0]+arr[2],要么是arr[1],也就是maxsum3=max( arr[0]+arr[2] ,arr[1原创 2020-07-06 14:15:50 · 1827 阅读 · 1 评论 -
计算两个链表的和
结算两个链表的和package algrothms;class Node { int val; Node next; public Node(int val) { this.val = val; this.next = null; } public Node(int val, Node next) { this.val = val; this.next = next; }}public class ReverseList { public static N原创 2020-07-05 20:14:27 · 432 阅读 · 0 评论 -
数组向右移动n位--java实现
public class T2 { public static int[] reverse(int[] arr, int start, int end) { if (start > end || start < 0 || end > arr.length) { System.out.println("参数越界"); ...原创 2020-04-14 16:04:34 · 740 阅读 · 0 评论 -
解决Hash冲突常用方法
一、开放地址法:从发生冲突的单元起,按照一定的顺序从哈希表中找出一个空白单元,然后把冲突元素存入该单元的方法;所需长度>=元素个数;开放地址中解决冲突的方法:线性探测法、平方探测法、双散列函数探测法;二、链地址法:也就是数组+链表,将冲突的元素存入数组后面的链表中,hashmap中使用的方法就是链地址法;三、再哈希:同时构造多个不同的哈希函数,第一个哈希函数冲突,使用第二个,以此类推...原创 2018-12-07 20:03:35 · 482 阅读 · 0 评论 -
线索二叉树(复习)
线索二叉树复习原创 2017-09-03 16:11:57 · 541 阅读 · 0 评论 -
二叉树 叶子结点 与 度为2的节点关系
n0 = n2 +1原因:n0:叶子结点个数,S结点总数结点方面考虑:n0+n1+n2 = S树枝方面考虑:0*n0 +1*n1 +2*n2 = S-1(分十块豆腐砍九刀)原创 2017-04-06 10:38:23 · 16276 阅读 · 0 评论 -
算法学习-----输出链表的倒数第k个节点
假设链表有n个节点,那么倒数第k个节点,就是从头结点开始数到n-k+1个节点;所以自然就会两种思路: 1、如果可以遍历链表两次的话,第一次计数得到链表节点个数,第二次直接循环找到第n-k+1个节点返回就是。 2、如果链表只允许遍历一次的话,就必须使用两个指针(or引用):第一个指针从头开始走k-1步,第二个指针从头开始走,第一个到链表尾部,第二个指针的所指的就是倒数第k个节点 注意程序的Rob原创 2017-05-31 20:11:02 · 430 阅读 · 0 评论 -
算法学习----合并两个有序的链表
将两个非递减链表合成一个,并使得合成后的链表已然是有序(非递减)链表:/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { publ原创 2017-05-31 20:20:32 · 411 阅读 · 0 评论 -
算法学习----给定入栈的顺序,判断另一个顺序是否为该入栈顺序的一个弹出顺序
分析:要判断另一个序列是否为当前入栈顺序的一个输出顺序,就必须将输出顺序作为结果,进行比对:思考过程如下: 1.先从popA[0]开始比较,如果popA[0]先弹出,则意味着它之前的元素的没有弹出,那么需要将它之前的元素的压入栈中,压栈的判断条当前的栈顶元素!=popA[0],最后的结果是如果栈顶元素等于当前的popA[0],然后弹出该元素,进入下一个循环popA[1]的比较。原创 2017-06-09 20:19:06 · 566 阅读 · 0 评论 -
算法学习----反转链表
输入一个链表的头结点,将这个链表反转并输出它的新的头结点/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListN原创 2017-05-31 20:25:01 · 369 阅读 · 0 评论 -
Java中的泛型方法
源码实验地址http://pan.baidu.com/share/link?shareid=383851&uk=1394763765转载 2017-05-23 16:52:07 · 283 阅读 · 0 评论