随笔分类 -  数据结构与算法

摘要:负数的补码是通过对正数的反码加1得到的,负数以补码形式存储 如何计算负数的补码 假设我们要计算一个正整数的负数的补码。步骤如下: 例子:计算 -5 的补码 原码(正数的二进制表示) 正数5的原码为:0 0000101(8位表示法) 反码 对5的原码每一位取反(0变1,1变0),得到反码:1 1111 阅读全文
posted @ 2024-10-16 14:19 专心Coding的程侠 阅读(162) 评论(0) 推荐(0)
摘要:给一个数,求次数的平方根倒数,保留小数点后6位。 #include <stdio.h> float Q_rsqrt(float number) { long i; // 用来存储位操作结果 float x2, y; const float threehalfs = 1.5f; // 常数1.5 x2 阅读全文
posted @ 2024-10-15 23:52 专心Coding的程侠 阅读(159) 评论(0) 推荐(0)
摘要:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Test {//数组 求 某一个 连续子数组的和 阅读全文
posted @ 2024-01-06 22:20 专心Coding的程侠 阅读(53) 评论(0) 推荐(0)
摘要:11、实现计算第n个斐波那契数 12、给定一个字符串编码规则,如输入字符串”Y3E12S!3”,字母后面的数字表示该字符重复几次,如果字符后没有数字则表示一个字符,最终输出转码后的字符串’YYYEEEEEEEEEEEES!!!’。试写出转码的函数,编程语言不限。 13、简述你所了解的两种或以上排序算 阅读全文
posted @ 2023-04-20 22:27 专心Coding的程侠 阅读(50) 评论(0) 推荐(0)
摘要:第一道 100% 题面 题目描述 现在有一个加密的规则:给定长度不超过300个字符的一串文字(仅由大写字母或空格组成),将每个字符转为ASCII码后再加上一个魔法数 X(0<= X <= 999) 后组成了一串新的数字组合,加密的过程就完成了。现在想知道一串数字组合经过解密后的文字是什么,请编写代码 阅读全文
posted @ 2023-04-20 15:56 专心Coding的程侠 阅读(159) 评论(0) 推荐(0)
摘要:LeetCode 202 快乐数 题目跳转链接 具体实现思路如下: 实现一个函数getSum,用来计算一个数各个位上的数字的平方和。具体实现就是对这个数进行除十操作和取余操作,对每个位上的数字平方后累加到总和中。 在一个while循环中,不断调用getSum函数,直到计算出1或者陷入无限循环为止。同 阅读全文
posted @ 2023-03-26 21:03 专心Coding的程侠 阅读(52) 评论(0) 推荐(0)
摘要:力扣题目跳转链接 代码随想录 题解 题目要求:给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 解法一: unordered_set 其具体思路和步骤: 创建一个unordered_set,将数组nums1中的所 阅读全文
posted @ 2023-03-26 17:37 专心Coding的程侠 阅读(42) 评论(0) 推荐(0)
摘要:力扣LeetCode 142.环形链表II 题目跳转链接 解题思路: 代码随想录: 142.环形链表II 从头结点出发一个指针, 从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点。 阅读全文
posted @ 2023-03-26 14:35 专心Coding的程侠 阅读(28) 评论(0) 推荐(0)
摘要:面试题 02.07. 链表相交 力扣 题目跳转链接 思路参考:代码随想录 跳转链接 错误代码: class Solution { public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode* f 阅读全文
posted @ 2023-03-26 14:03 专心Coding的程侠 阅读(45) 评论(0) 推荐(0)
摘要:LeetCode 19 删除链表的倒数第N个节点 题目跳转链接 class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* dummyHead=new ListNode(0); dumm 阅读全文
posted @ 2023-03-26 03:00 专心Coding的程侠 阅读(19) 评论(0) 推荐(0)
摘要:24. 两两交换链表中的节点 力扣题目跳转链接 具体解题思路和答案可以参考:代码随想录: 24. 两两交换链表中的节点 ####自我错误思考过程记录: &#10008 错误代码: //思路: class Solution { public: ListNode* swapPairs(ListNode* 阅读全文
posted @ 2023-03-26 01:50 专心Coding的程侠 阅读(63) 评论(0) 推荐(0)
摘要:LeetCode 59. 螺旋矩阵 II 题目跳转链接 这道题可以采用模拟法来实现。我们可以设置上下左右四个边界,然后模拟螺旋填充元素。具体来说,我们定义 left、right、top、bottom 四个变量代表当前需要填充的最左边、最右边、最上面、最下面的位置,然后根据当前位置,依次填充矩阵。 具 阅读全文
posted @ 2023-03-25 21:54 专心Coding的程侠 阅读(98) 评论(0) 推荐(0)
摘要:1.从尚未排序的N名学生的考试分数中挑出排名第K的分数,平均时间复杂度最优可以达到多少?( ) A、O(N*logN) B、O(NxK) C、O(N) D、O(N^2) (B是 *号 星号显示有问题 不会解决) 答: 在尚未排序的N名学生的考试分数中挑出排名第K的分数,平均时间复杂度最优的算法是使用 阅读全文
posted @ 2023-03-24 22:33 专心Coding的程侠 阅读(282) 评论(0) 推荐(0)
摘要:T1-3D模型三角形面片 题意 3D模型文件中存储了三角形面片数据,由顶点数组和索引数组两部分构成。 例如: 顶点数组:[V{x0,y0,z0}, V{x1,y1,z1}, V{x2,y2,z2}...],每个元素是1个顶点坐标 索引数组:[(0,1,2), (0,2,3), (4.5,6)…]。每 阅读全文
posted @ 2023-03-24 22:31 专心Coding的程侠 阅读(401) 评论(0) 推荐(0)
摘要:题目跳转链接 力扣 class Solution { public: ListNode* reverseList(ListNode* head) { //双指针 抄写 ListNode* cur=head; ListNode* pre=nullptr; ListNode* temp; //首先定义一 阅读全文
posted @ 2023-03-22 21:21 专心Coding的程侠 阅读(33) 评论(0) 推荐(0)
摘要:部分内容引用自 知乎:程序员贺同学 整理的C++八股文 ↑ 他总结分享的很棒 (1)冒泡排序 算法描述: ⽐较相邻的元素。如果第⼀个⽐第⼆个⼤,就交换它们两个; 对每⼀对相邻元素作同样的⼯作,从开始第⼀对到结尾的最后⼀对,这样在最后的元素应 该会是最⼤的数; 针对所有的元素᯿复以上的步骤,除了最后⼀ 阅读全文
posted @ 2023-03-22 20:11 专心Coding的程侠 阅读(42) 评论(0) 推荐(0)
摘要:力扣 题目跳转链接 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和 阅读全文
posted @ 2023-03-22 16:46 专心Coding的程侠 阅读(41) 评论(0) 推荐(0)
摘要:代码随想录_0746.使用最小花费爬楼梯 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费。 题目跳转链接 阅读全文
posted @ 2023-03-22 15:36 专心Coding的程侠 阅读(51) 评论(0) 推荐(0)
摘要:代码随想录_动态规划理论基础 对于动态规划问题,将拆解为如下五步曲。 确定dp数组(dp table)以及下标的含义 确定递推公式 dp数组如何初始化 确定遍历顺序 举例推导dp数组 动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。 阅读全文
posted @ 2023-03-22 15:26 专心Coding的程侠 阅读(41) 评论(0) 推荐(0)
摘要:题目跳转链接 有暴力解法和窗口滑动法,暴力解法是否值得掌握 暴力解法显然是一种简单而直观的解法,其时间复杂度为 O(N^2),空间复杂度为 O(1)。如果输入规模不大,暴力解法可能也可以接受。 但在面对规模较大,或对性能要求较高的场景下,暴力解法就会因其高时间复杂度而表现较差。此时就需要使用其他算法 阅读全文
posted @ 2023-03-21 23:00 专心Coding的程侠 阅读(70) 评论(0) 推荐(0)