06 2024 档案
摘要:93.复原IP地址 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效的 IP 地址
阅读全文
摘要:39.组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重
阅读全文
摘要:77.组合 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 解题 只能取比它大的,所以有个参数startindex 参数:一维数组单个组合path,二维数组结果集result,总数n,组合大小k,搜索结果的开始索引startindex 终止条件:path.size=k
阅读全文
摘要:110.平衡二叉树 给定一个二叉树,判断它是否是 平衡二叉树 解题 思路:判断左右孩子的高度差是否超过1,用-1表示是否是平衡二叉树。 终止条件:碰到空节点,返回高度0。 报错:当左/右子树不平衡是,直接返回-1,不用继续计算。 因为如果一个子树不平衡(即高度返回 -1),仍然继续计算另一个子树的高
阅读全文
摘要:226.翻转二叉树 题目:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 解题: 思路:遍历的过程中交换每个节点的左右孩子。 选择哪种遍历方式? 中序不行,左中右,左边子节点交换完,处理中间交换了左节点和右节点,再处理右节点去交换时这个右节点就是原来的左节点,所以有一边就一直没
阅读全文
摘要:二叉树基本理论 一、种类 1)满二叉树 2)完全二叉树 3)二叉搜索树 4)平衡二叉搜索树:了解各种容器(map\set..)的底层实现? 二、存储方式 1)链式存储:构造用两个指针的链表 2) 顺序存储:下标i的节点,左孩子2i+1,右孩子2i+2,用的少 三、遍历方式 1)深度优先搜索:前序、中
阅读全文
摘要:python语法: 一、python不支持栈,通常使用列表(list)来模拟栈。append(),pop() 点击查看代码 stack = [] # 压栈(push) stack.append(1) # 弹栈(pop) top_element = stack.pop() # 查看栈顶元素(peek)
阅读全文
摘要:151.反转字符串中的单词 题目:给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间
阅读全文
摘要:344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 解题: 思路:双指针,秒了 点击查看代码 class Solution: def reve
阅读全文
摘要:454.四数相加 题目:给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j, k, l < n nums1[i] + nums2[j] + nums3[k] + nums4[l] =
阅读全文
摘要:哈希表 常见的三种哈希结构:数组、set(集合)、map(映射) 要快速判断一个元素是否出现集合里,考虑哈希法! 242.有效的字母异位词 题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为
阅读全文
摘要:24. 两两交换链表中的节点 题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 解题: 关键: cur的位置在要交换的两个节点的前面 具体如何交换的操作!! while种植条件:cur的下一个和下下个都不为空,
阅读全文
摘要:python定义链表 val:数据域,节点存储的元素。 next:指针域,指向下一个节点的指针,最后一个节点指向None表示空指针。 点击查看代码 class ListNode: def __init__(self, val, next=None): self.val = val self.next
阅读全文
摘要:977.有序数组的平方 题目:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 解题: 一、暴力排序法 思路:先平方再排序 快排(升序): 1.'sorted()'函数,返回一个新列表:sorted_nums=sorted(nums)
阅读全文
摘要:704.二分查找 题目:给定一个 n 个元素有序的(升序)整型数组和一个目标值 target,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 提示:可以假设nums中的所有元素是不重复的。 解题: 思路:二分法可以使用的前提是:1.有序数组;2.数组中无重复元
阅读全文