随笔分类 - 算法
摘要:两个整数相除 两个整数相除 将两个整数相除,要求不使用乘法、除法和 mod 运算符。如果溢出,返回 2147483647 。 (一)利用减法。超时 (二)一次一次加会超时,改进:每次将被除数增加1倍,同时将count也增加一倍,如果超过了被除数,那么用被除数减去当前和再继续本操作。。。但这个也会超时
阅读全文
摘要:一个数n的二进制中1的个数 & 快速判断一个数是否是2的幂次方 A + B 问题 A + B 问题 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 分析: 异或运算^ 与运算 & 加法运算<考虑进位> 加法运算<不考虑进位> 0 ^ 0 = 0 0 & 0 = 0 0 + 0 =
阅读全文
摘要:题目描述:查找数组中最小的k个数。 思路: (1)维护k个元素的最大堆,即用容量为k的最大堆存储最先遍历到的k个数,并假设它们即是最小的k个数,建堆费时O(k)后,有k1<k2<...<kmax(kmax设为大顶堆中最大元素)。继续遍历数列,每次遍历一个元素x,与堆顶元素比较,x<kmax,更新堆(
阅读全文
摘要:二叉查找树 (1)二叉查找树后续遍历的最后一个结点,必能把前面的部分分成两部分,左边比它小,右边比它大。 根据上面结论就可以判断。 二叉平衡树(AVL) 二叉平衡树(AVL)肯定是一个二叉排序树,任何节点的两个子树的高度最大差别为1。 在AVL树中进行插入或删除节点后,可能导致AVL树失去平衡。这种
阅读全文
摘要:栈的压入、弹出序列 包含min函数的栈 用两个栈实现队列 数值的整数次方 二进制中1的个数 旋转数组中的最小数 矩形覆盖 跳台阶 二维数组中的查找 替换空格 斐波那契数列 斐波那契数列 输入一个整数n,输出斐波那契数列的第n项。n是从0开始。0,1,1,2,3,5... 用两个栈实现队列 用两个栈来
阅读全文
摘要:主元素(数组中出现次数超过一半的数字) 数组中的逆序对 第一个只出现一次的字符位置 把数组排成最小的数 整数中1出现的次数 连续子数组的最大和 字符串的全排列 扑克牌顺子 顺时针打印矩阵 调整数组顺序使奇数位于偶数前面 最小的K个数 数组中只出现一次的数字 数字在排序数组中出现的次数 数组中重复的数
阅读全文
摘要:恢复旋转排序数组 最大子数组 两数之和 三数之和 加一 删除元素 买卖股票的最佳时机 删除排序数组中的重复数字 合并排序数组 两数组的交 移动零 移动零 将一个数组中的 0 移动到数组的最后面,非零元素保持原数组的顺序。必须在原数组上操作。 两数组的交 样例:nums1 = [1, 2, 2, 1]
阅读全文
摘要:解码方法 生成括号 有效的括号序列 是否回文串 (链表回文) 最长回文子串 最长回文子串 有效的括号序列 给定一个字符串所表示的括号序列,包含以下字符:(, ), {, }, [, ], 判定是否是有效的括号序列。 生成括号 给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。
阅读全文
摘要:字符串全排列 字符串的全组合 字符串的包含 乱序字符串 旋转字符串 翻转字符串 判断字符串是否没有重复字符 转换字符串到整数 最后一个单词的长度 最长单词 单词切分 字符串匹配 最长公共子串 最长公共子序列 最长公共前缀 最长无重复字符的子串 乱序字符串 给出一个字符串数组S,找到其中所有的乱序字符
阅读全文
摘要:二分查找 搜索插入位置 二维矩阵中的二分查找 x的平方根 x的n次幂 搜索旋转排序数组 寻找旋转排序数组中的最小值 寻找旋转排序数组中的最小值II 寻找峰值 寻找旋转排序数组中的最小值II 假设有重复元素。 寻找旋转排序数组中的最小值 假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5
阅读全文
摘要:冒泡排序 插入排序 希尔排序 选择排序 快速排序 归并排序 堆排序 桶排序 排序算法的稳定性:排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。 冒泡(稳定) :冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如
阅读全文
摘要:两个链表的交叉 合并两个排序的链表 链表插入排序 链表排序(O(n log n) ) 删除链表中倒数第n个节点 回文链表 合并两个排序的链表 输入两个单调递增的链表,输出两个链表合成后的链表,合成后的链表满足单调不减规则。 两个链表的交叉 找到两个单链表最开始的交叉节点 链表插入排序 链表排序(O(
阅读全文
摘要:从尾到头打印链表 翻转链表 翻转链表II 链表划分 合并两个排序链表 合并k个排序链表 链表求和 带环链表 找出带环链表的环入口 从尾到头打印链表 输入一个链表,从尾到头打印链表每个节点的值。 翻转链表 翻转链表II 翻转链表中第m个节点到第n个节点的部分。(给出链表1->2->3->4->5->n
阅读全文
摘要:判断序列是否为BST的后序遍历 在二叉查找树中插入节点 利用中序遍历,解决问题:找到BST中的第k个元素(从小到大)、验证BST 验证二叉查找树 二叉查找树迭代器 判断序列是否为BST的后序遍历 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果 在二叉查找树中插入节点 递归 非递归 利
阅读全文
摘要:将二叉查找树变为有序的双向链表(不能创建新节点,只调整指针) 判断二叉树是不是平衡二叉树 二叉树中两个节点的最低公共祖先节点 二叉树的序列化和反序列化 由前序遍历和中序遍历构造二叉树 由中序遍历和后序遍历树构造二叉树 二叉树的所有路径 二叉树中和为某一值的路径 二叉树中和为某一值的路径 输入一颗二叉
阅读全文

浙公网安备 33010602011771号