算法-剑指offer
if_i_were_a
你好
展开
-
LeetCode 21合并两个有序链表
LeetCode第21题,也是剑指offer上的一个题,题目描述如下: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 public static ListNode mergeTwoList...原创 2019-04-10 10:55:30 · 132 阅读 · 0 评论 -
字符串中空格的替换
《剑指offer》p51 /* 面试题5替换空格: 请实现一个函数,把字符串中的每个空格替换成20%。例如“We are happy” 则输出“We%20are%20happy” */ #include<stdio.h> void stringReplace(char str1[]) { int i,j; int originLength,newLength=0; ...原创 2018-09-05 17:57:02 · 421 阅读 · 0 评论 -
删除链表一个结点时间复杂度为O(1)
/*剑指offer p119 面试题18 在O(1)时间内删除链表结点 */ #include<stdio.h> #include<malloc.h> typedef struct node { int data; struct node *next; } LinkNode; LinkNode * createLinkList() { LinkN...原创 2018-09-08 15:57:49 · 1872 阅读 · 0 评论 -
LeetCode 160找到两个单链表相交的起始结点
编写一个程序,找到两个单链表相交的起始节点。LeetCode160题,剑指offer上的题 public static ListNode getIntersectionNode(ListNode headA, ListNode headB) { if (headA == null || headB == null) return null; ...原创 2019-04-10 18:43:30 · 311 阅读 · 2 评论 -
链表的反转(逆置)
剑指offer面试题24 p142 LeetCode第204题 本题有两种解法,迭代法和递归法: 迭代法比价好理解:代码如下:,要注意的是必须用一个tempHead来记录当前操作的下一个结点 //使用迭代的方法反转链表 public static ListNode reverseList(ListNode head) { ListNode pre=null; ...原创 2019-04-07 13:21:26 · 663 阅读 · 0 评论 -
LeetCode 141判断链表是否有环[附创建链表的代码]
LeetCode上面的141题,同时也是昨晚携程笔试编程的第1题。当时那个函数很快就写出来了,但是在创建环形链表这儿一直绕不出来,花了很长时间。下来跟大家讨论才知道有的人有HashMap解决了,HashSet也有的解决了,还有的直接用一个char数组给解决了。 还是把自己的方法整理一下 思路就是两个指针,一个每次向前跑两个,一个向前跑一个,如果在某一个时间点,两者重复了,就说明是环形链表 函...原创 2019-04-09 09:55:37 · 292 阅读 · 0 评论 -
LeetCode142给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
这是LeetCode上面的142题,同时也是剑指offer上的一个题 整体思想:当判断完当前链表有环之后,先确定环的个数,确定完之后,让前面的指针开始先跑n个节点,然后两支针一起跑,两个指针相等的那个位置就是环形链表的入口节点 代码如下: public static ListNode detectCycle(ListNode head) { if (head == n...原创 2019-04-09 17:05:56 · 2407 阅读 · 0 评论 -
求数组中只出现一次的数字
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 public static void main(String[] args) { int[] nums = {7, 6, 7, 5}; int[] nums1 = {0}; int[] nums2 = {0}; Find...原创 2019-07-16 15:26:58 · 632 阅读 · 0 评论 -
复杂链表的复制
题目如下: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 两种方法,在代码中已标识清楚,在牛客网上均通过 关于第一种方法详细请看https://blog.csdn.net/wszy1301/article/details/8...原创 2019-07-18 20:19:27 · 637 阅读 · 0 评论