11 2022 档案
摘要:题目: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答
阅读全文
摘要:题目: 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例: 输入:ransomN
阅读全文
摘要:题目: 给四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j, k, l < n nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0 示例: 输
阅读全文
摘要:题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例: 输入:nums = [2,
阅读全文
摘要:题目: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1,那么这个数就是快乐数。 如果 n 是 快乐数 就返回 tr
阅读全文
摘要:题目: 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 思路: 延续242的思路,遍历两个数组,然后查看数组1中的字
阅读全文
摘要:题目: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例: 输入: s = "anagram", t = "nagaram" 输出: true 思路: (1)遍历其中一个字符串
阅读全文
摘要:题目: 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果
阅读全文
摘要:题目: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 题目数据保证整个链式结构中不存在环。 注意,函数返回结果后,链表必须保持其原始结构。 图示两个链表在节点 c1 开始相交: 示例: 输入:inters
阅读全文
摘要:题目: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 思路: 给两个指针,让快指针和慢指针相差n,快指针指向倒数第一个节点时,慢指针指向倒数第n-1个结点。 1 2 3 4 5 slow
阅读全文
摘要:题目: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 思路: 初始时,cur指向虚拟头结点,然后进行如下三步: 操作之后,链表如下: cl
阅读全文
摘要:题目: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 双指针法: 两个指针,cur指向当前节点,用来遍历,pre指向上一节点。 null 1 2 3 4 5 pre cur cur在前面走,把指针
阅读全文
摘要:题目: 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。 在链表
阅读全文
摘要:题目: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 不添加虚拟结点: //时间O(n) 空间O
阅读全文
摘要:题目: 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 思路: 模拟顺时针画矩阵的过程: 填充上行从左到右 填充右列从上到下 填充下行从右到左 填充左列从下到上 由外向内一圈一圈这么画下去。 每条边留最后一个点给下一
阅读全文
摘要:排序稳定性:相等的两个元素,排序后的顺序和排序前保持一致即稳定。 排序算法性能度量:时间性能、辅助空间、算法复杂性 1.冒泡排序 基本思想:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录。 public void bubbleSort(int[] elem) { for (int i
阅读全文
摘要:SQL1 top 2 -->结尾处limit 2 SQL13 in('1','3','5') 找的内容不连续 between 1 and 5 包含首尾,找的内容连续 is/is not NULL SQL18 select gender,university,count(device_id) user
阅读全文
摘要:题目: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和≥ target的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例: 输入:target =
阅读全文
摘要:力扣584.寻找用户推荐人: select name from customer where referee_id!=2 or referee_id is not NULL; null值无法与确定的值作比较,用 is NULL 或者 is not NULL 判断 力扣175.组合两个表: selec
阅读全文
摘要:1.线性表(list):零个或多个数据元素的有限序列 数组和链表的区别: (1)存储方式不同数组是连续存储,数组在创建时需要一个整块的空间。链表是链式存储,链表在内存空间中不一定是连续的。数组一般创建在栈区,链表一般创建在堆区,在增加节点时需要new或malloc新节点,相较于数组长度不固定,自由度
阅读全文
摘要:题目: 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 暴力破解:O(nlogn) (1)遍历,求出每个数字平方 (2)对新数组进行快排 class Solution { public int[] sortedSquares(int
阅读全文
摘要:题目: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 数组理论基础: 数组(Arra
阅读全文
摘要:二分查找概述: Binary Search,也叫折半查找。折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 二分查找原理: 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位
阅读全文