删除链表的节点
1 | class Solution { |
连续子数组的最大和
1 | class Solution { |
第一个只出现一次的字符
1 | class Solution { |
两个链表的第一个公共节点
1 | 我们使用两个指针 a,b 分别指向两个链表 headA,headB 的头结点,然后同时分别逐结点遍历,当 a 到达链表 headA 的末尾时,重新定位到链表 headB 的头结点;当 b 到达链表 headB 的末尾时,重新定位到链表 headA 的头结点。 |
圆圈中最后剩下的数字
1 | 第一次去除的答案就是x=m%n,这时候序列长度成为n-1,这个时候的序列构成就成了x后面的一串排在了初始串的前面,这样下次的答案就是(m%n+x)%n=(m+x)%n。 |
调整数组顺序使奇数位于偶数前面
1 | class Solution { |
和为s的两个数字
1 | class Solution { |
数组中重复的数字
1 | class Solution { |
数组中出现次数超过一半的数字
1 | class Solution { |
层序遍历二叉树
1 | class Solution { |
二叉搜索树的最近公共祖先
1 | /** |
和为s的连续正数序列
1 | class Solution { |
用两个栈实现队列
1 | class CQueue { |
二进制中1的个数
1 | class Solution { |
合并两个排序的链表
1 | /** |
二叉搜索树的第k大节点
1 | /** |
反转链表
1 | /** |
从尾到头打印链表
1 | class Solution { |
替换空格
1 | class Solution { |
打印从1到最大的n位数
1 | class Solution { |
二叉树的镜像
1 | /** |
二叉树的深度
1 | /** |
链表中倒数第k个节点
1 | /** |
左旋转字符串
1 | class Solution { |
是否为平衡二叉树
1 | /** |
是否为对称的二叉树
1 | /** |
包含min函数的栈
1 | class MinStack { |
最小的k个数
1 | class Solution { |
不用加减乘除做加法
1 | class Solution { |
n个骰子的点数
1 | class Solution { |
在排序数组中查找数字个数
1 | class Solution { |
旋转数组的最小数字
1 | class Solution { |
扑克牌中的顺子
1 | class Solution { |
顺时针打印矩阵
1 | class Solution { |
滑动窗口的最大值
1 | class Solution { |
0~n-1中缺失的数字
1 | class Solution { |
翻转单词顺序
1 | class Solution { |
青蛙跳台阶问题
1 | class Solution { |
二维数组中的查找
1 | class Solution { |
斐波那契数列
1 | class Solution { |
求1+2+…+n
1 | class Solution { |
数组中数字出现的次数 II
1 | class Solution { |
复杂链表的复制
1 | /* |
通过前序和中序重建二叉树
1 | /** |
找出出现次数不为2的两个数
1 | class Solution { |
二维dp取礼物的最大价值
1 | class Solution { |
从上到下打印二叉树
1 | /** |
丑数
1 | class Solution { |
二叉搜索树转为有序双向链表
1 | class Node { |
股票的最大利润
1 | class Solution { |
栈的压入、弹出序列
1 | class Solution { |