- 博客(12)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Hash方法实现复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。/*public class RandomListNode { int label; RandomListNode next = null; Rand...
2018-04-04 11:08:02
579
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 删除有序链表中重复的节点
题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。非递归实现:/* public class ListNode { int val; ListNode next = null; ListNode(...
2018-04-02 21:52:29
196
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 输入一个链表,输出该链表中倒数第k个结点。
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode FindKthToTail(ListNode head,int...
2018-04-02 21:49:12
503
原创 替换空格
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class Solution { public String replaceSpace(StringBuffer str) { char[] chArr = str.toString().toCharArr...
2018-04-02 22:07:21
159
原创 从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/import ja...
2018-04-02 21:57:42
166
原创 socket nio
1. 传统的I/O使用传统的I/O程序读取文件内容, 并写入到另一个文件(或Socket), 如下程序:File.read(fileDesc,buf, len);Socket.send(socket,buf, len);会有较大的性能开销。1) 先将文件内容从磁盘中拷贝到操作系统buffer2) 再从操作系统buffer拷贝到程序应用buffer3) 从程序buf
2018-01-10 14:51:33
244
原创 求阶乘以及求各项阶乘和问题
下午做了一道笔试题,试求各项阶乘和的问题,也就是求 : 1! + 2! + ... + n!。一开始没什么思路,那就想着暴力求。。。就是从1~n,求每一项的阶乘,再求和,效率肯定低,当时脑子浑噩,脑子里想着这样肯定是有重复相乘的,但就是没能想出优化的T_T好吧,那就先来暴力求解吧。关于求阶乘的,用了递归求解(关键当时递归还给漏了个n,还是渣啊),想到可能会数很大,就暂时用了long型/** *...
2017-09-11 17:13:35
1287
原创 求序列的最大子序列和的问题
给定任意序列: A_1,A_2,A_3,...,A_N...求解 : A_i...A_j的和的最大值(1 这里分为递归和非递归两种方法实现。其中非递归实现的方法更优(复杂度O(N) )。对于这个问题,一开始很容易想到用两个循环嵌套,逐一去遍历以序列每一个元素为起点的子序列的和,从而去求出最大子序列和的问题public int maxSubSum1(int[] arr) { in
2017-09-11 10:29:40
378
原创 求两个数的最大公因数
欧几里得算法。给定两个数m,n,假设: m > n.其实就是不断的用 m对n取模,然后让m值取n的值,而n的值变为(m%n)的余数,直到n=0为止,这时的m就是它们的最大公因数了。就比如:m = 15, n = 10;第一次: temp = m % n = 5; m = n = 10; n = temp = 5;第二次:
2017-09-11 10:10:59
979
原创 二分查找应用-旋转数组
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/** * 给定一个旋转数组(即,原来有序的数组,把前面某一部分放到数组的末尾,形成两部分有序子数组) * 在数组中查找某一值n ,返回它的位置。不存在返回Null * @author YunXing * 旋转数组的特例
2017-09-09 16:04:09
310
原创 匹配括号--Java
利用自己编写的栈实现对输入字符串的括号进行匹配。"("和")", "["和"]", "{"和"}"成对出现是合法字符串。例如"[][]{}", "{[[([]([])()[])]]}"是合法的; "([(])", "[())"是不合法的.当然,还会有大小括号间嵌套的合法性约束,这里没有考虑,只是考虑了承兑出现的合法性。例:as[x{cvfd[fdg([]([fgv]v)v(g)[fgd]@#$
2017-08-17 17:36:17
256
原创 中缀表达式转后缀表达式--Java
利用自己用数组实现的ArrayStack(与常规的栈功能基本一致)实现将中缀表达式变成后缀表达式。这个题目应该都有见过,自己也是看了些资料,加上自己的理解实现的,这里记录一下,给自己以后看。如果觉得可以,也分享一下。例如: a + b * c + ( d * e + f ) * g --> a b c * + d e * f + g * +; a + b - a * ( (
2017-08-17 17:15:15
402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人