摘要:
二叉树基本理论 一、种类 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.数组中无重复元 阅读全文