A了9题 不太行 虽然前期速度还行,由于有道poj原题写过直接粘了,但中期由于被B卡了,心态有点炸。后面也做不太动。 来补两道题。 B题: 题意:求最短的让所有字符都至少出现一次的字符串的长度 https://ac.nowcoder.com/acm/contest/3570/B 比赛里一直想的假算法 ...
分类:
其他好文 时间:
2019-12-28 20:59:54
阅读次数:
80
上一篇主要讨论了C指针的本质,但并没有解释指针的类型问题,这次我们重点来讨论指针的类型与指针内存分配之间的关系。 对比以下两个指针 int *p; char *p; 单纯从上面看这两个指针有何区别? 很多读者第一反应就是其类型不同,确实没错,但是我们现在需要从底层出发,搞清楚指针类型的意义。 其实单 ...
分类:
其他好文 时间:
2019-12-25 16:15:41
阅读次数:
92
题目:输入两个链表,找出它们的第一个公共结点。 这道题可以画一个图,就会很清楚。解决方法是让两个指针从两个链表的头结点开始走,当指针走到空的时候,让它再从另一个链表的头结点开始走。当两个指针相遇的位置就是公共结点,两个指针相遇就是它们相等。如果不存在公共结点,则两个结点又都走向空,那这个时候则返回空 ...
分类:
其他好文 时间:
2019-12-23 13:10:34
阅读次数:
69
双向链表中不同于单向链表,有两个指针域,一个负责向后连接,一个负责向前连接 相对于单向链表来说:查找更加方便,但添加删除相对复杂 package linkedlist; public class DoubleLinkedListDemo { public static void main(Strin ...
分类:
其他好文 时间:
2019-12-22 12:23:06
阅读次数:
84
700. 二叉搜索树中的搜索 树 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 思路: 二叉搜索树的特点为左比根小,右比根大。那么目标结点就有三种可能: 1. 和根一样大,那么直接返回根即可。 ...
分类:
其他好文 时间:
2019-12-22 10:23:15
阅读次数:
80
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 这道题如果没有相对位置的要求的话,可以让两个指针i和j分别指向头和尾,指针i从前往后走,当指针i指向偶数时,停下来;指针j从 ...
分类:
编程语言 时间:
2019-12-21 20:54:45
阅读次数:
110
环形链表入口节点 题目描述 思路分析:判断是否有环 本题是 判断环形链表是否有环 的进阶题目。 环形链表题目利用了 双指针技巧 ,设置快慢两个指针,每次快指针走两步慢指针走一步。假如链表有环,那么快慢指针在环的部分终究会相遇。 判断链表是否有环,比较简单直接上代码。 思路分析:如何找出入口节点? 方 ...
分类:
其他好文 时间:
2019-12-18 15:12:00
阅读次数:
86
合并K个排序链表 "git代码地址" 题目描述 基本思路 这道题属于双链表合并的进阶。理解这道题首先需要了解有序双链表合并的解法。 已知链表有序,使用两个指针指向两个链表,逐一比较大小移动指针。代码很简单如下所示。 方法二:优先级队列 使用大小为链表长度的优先级队列,可以将优先级队列看成大小为k的小 ...
分类:
编程语言 时间:
2019-12-18 15:05:17
阅读次数:
95
指针是不能直接进行异或运算的,需要将指针转换成整型int或long,在Linux系统下只能是long,因为指针在win系统占4个字节,在Linux系统占6个字节。 以下为两个指针的异或运算实现指针的交换: #include <stdio.h> int main() { int *a,*b; unsi ...
分类:
其他好文 时间:
2019-12-15 12:46:05
阅读次数:
94
概念 双向链表(Double_linked_list)也叫双链表,是链表的一种,它的每个数据结点中都有 两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可 以很方便地访问它的前驱结点和后继结点。 实现 ...
分类:
编程语言 时间:
2019-12-13 14:17:17
阅读次数:
81