- 博客(26)
- 收藏
- 关注
原创 (笔记自用)位运算总结+LeetCode例题:颠倒二进制位+位1的个数
在解题之前理解一下为什么需要位运算?它的本质是什么?力扣上不少位运算相关的题,并且很多题也会用到位运算的技巧。这又是为什么?位运算的由来在计算机里面,任何数据最终都是用数字来表示的(不管是我们平时用的软件,看的图片,视频,还是文字)。并且计算机运算单元只认识高低电位,转化成我们认识的逻辑,也就是 0 1。这就是导致计算机里面任何数据最终都是用二进制(0 1)来保存的数字。只是我们平时看到的图片、文字、软件都只从二进行数字转化而来的。
2024-09-21 17:19:04 768
原创 C语言库uthash常用库函数以及LeetCode例题(多数元素)
你需要定义一个结构体,并在这个结构体中添加一个类型的字段,这个字段会被uthash库用来管理哈希表。int id;/* 用户ID *//* 用户名 *//* 使得结构体支持哈希表 */说明(1)关于结构体id是键(key),也可以是其他的数据结构,不同的数据结构对应hash操作可能不一样name是值(value),其类型根据实际情况定义hh是内部使用的hash处理句柄,在使用过程中,只需要在结构体中定义一个UT_hash_handle类型的变量即可,
2024-09-10 18:11:09 1112
原创 (笔记自用)LeetCode题目:相交链表
请注意相交节点的值不为 1,因为在链表 A 和链表 B 之中值为 1 的节点 (A 中第二个节点和 B 中第三个节点) 是不同的节点。换句话说,它们在内存中指向两个不同的位置,而链表 A 和链表 B 中值为 8 的节点 (A 中第三个节点,B 中第四个节点) 在内存中指向相同的位置。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,6,1,8,4,5]。从各自的表头开始算起,链表 A 为 [1,9,1,2,4],链表 B 为 [3,2,4]。给你两个单链表的头节点。
2024-08-15 15:29:53 863
原创 (哈希表)LeetCode题目:有效的字母异位词
给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。
2024-07-19 00:45:05 360
原创 C语言哈希表库函数uthash使用
你需要定义一个结构体,并在这个结构体中添加一个类型的字段,这个字段会被uthash库用来管理哈希表。int id;/* 用户ID *//* 用户名 *//* 使得结构体支持哈希表 */
2024-07-16 11:02:07 555
原创 (笔记自用)Leetcode题目:只出现一次的数字
给你一个整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
2024-07-13 00:21:59 815
原创 (笔记自用)中序遍历二叉树(递归法\迭代算法)
从某个值开始,不断地由上一步的结果计算(或推断)出下一步的结果,就叫。2:迭代法,需要需要借助栈来实现操作先后操作。3:利用栈的操作原理,先进后出的原理。该题使用了栈来实现非递归的迭代算法.1:树的中序遍历口诀:左根右。空间复杂度: O(1)时间复杂度:O(n)
2024-07-12 23:43:08 171
原创 (笔记自用)leetcode:买卖股票的最佳时期
给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择买入这只股票,并选择在卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0。5在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。0。
2024-07-11 19:14:45 390
原创 (笔记自用)leetCode:二叉树最小深度(递归和非递归)
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。叶子节点是指没有子节点的节点。25[0, 105]
2024-06-12 11:16:20 206
原创 (笔记自用)leetcode:求x的平方根
给你一个非负整数x,计算并返回x的。由于返回类型是整数,结果只保留,小数部分将被不允许使用任何内置指数函数和算符,例如或者x ** 0.5。x = 42x = 828 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
2024-06-01 11:26:46 338
原创 (笔记自用)leetcode题目:判断平衡二叉树
链接:https://leetcode.cn/problems/balanced-binary-tree/solutions/1248802/ping-heng-er-cha-shu-cyu-yan-xiang-jie-2-8m36/2:分别获取每个结点的左右子树的深度,根据左右子树深度差判断是否平衡。3:因为到达左子树底部后,每次对应的左子树都是放在递归调度中的。3:遍历全部结点,对所有结点的平衡性进行判断。1:自自底而上,判断每一个结点是否是平衡的。1:自顶而下,判断每一个结点是否是平衡的。
2024-05-31 12:07:46 542
原创 (笔记自用)leetcode题目:将有序数组转换为二叉搜索树
给你一个整数数组nums,其中元素已经按排列,请你将其转换为一棵平衡二叉搜索树。[0,-10,5,null,-3,null,9] 也将被视为正确答案:[3,1][1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。
2024-05-31 10:56:50 410
原创 (笔记自用)leetcode动态规划进阶二题
给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0或下标为1的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。,20]15你将从下标为 1 的台阶开始。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。总花费为 15。cost = [,100,,1,,100,,100,6你将从下标为 0 的台阶开始。- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。
2024-05-26 14:46:15 381
原创 (笔记自用)(leetcode)相同的树
给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
2024-05-24 14:01:15 181 1
原创 (笔记自用)(动态规划求解)Leetcode题目:爬楼梯
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?n = 22有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶n = 33有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶。
2024-05-21 22:04:53 263
原创 (笔记)(自用)Leetcode题:二进制求和
给你两个二进制字符串a和b,以二进制字符串的形式返回它们的和。示例 1:输入:a = "11", b = "1"输出:"100"示例 2:输入:a = "1010", b = "1011"输出:"10101"b'0''1'"0"1.a和b数组都是char类型数组,要计算需先将数据转化为int类型,并在最后再转化为char类型数组2.a数组和b数组长度不一,且都是逆序,这意味着逐项相加再项高位进位将很麻烦3.新生成的数组长度的如何确定。
2024-05-14 22:30:49 823 2
转载 (转载自用)leetcode题:搜索插入位置(二分查找法)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为。
2024-05-11 21:38:49 80
原创 leetcode刷题比较:两数相加
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。
2024-04-14 15:37:16 319 1
原创 习leetcode题目:回文数之所学:sprintf函数和内存分配
分配在内存空间和运行时间上会明显优于使用动态内存分配(char* str=(char*)malloc(sizeof(char)*100;),这是由于动态内存分配设计到堆的管理和分配算法等复杂操作,且需要手动释放内存空间。sprintf与printf函数类似,都使用格式化字符串来指定串的格式,在格式串内部使用一些以”%”开头的格式说明符来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。是一个回文整数,返回。
2024-04-07 12:01:39 222
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人