自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 论坛 (1)
  • 收藏
  • 关注

原创 Leetcode每日一题:10.09.sorted-matrix-search-lcci(排序矩阵查找)

思路:和之前的矩阵查找几乎一模一样,从右上角开始遍历,如果matrix[x][y]>target,则y–,如果matrix[x][y]<target,则x++,这样往复直到找到target,如果越过边界仍然找不到,说明target不在数组中;bool searchMatrix(vector<vector<int>> &matrix, int target){ int len_row = matrix.size(); //行数 if (len_row .

2020-09-29 08:54:06 25

原创 Leetcode每日一题:977.squares-of-a-sorted-array(有序数组的平方)

思路:先找到里面绝对值最小的元素,然后双指针,一个指左边,一个指右边,比较两指针指向的当前元素,哪个小放哪个哪边指针指向下一个元素;最后把剩余没放进的一侧全部放入;vector<int> sortedSquares(vector<int> &A){ int mid = 0; int len = A.size(); while (mid < len - 1) { if (abs(A[mid + 1]) > abs(A[mid])) { .

2020-09-28 09:30:12 26

原创 Leetcode每日一题:剑指offer22.lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof(链表中倒数第k个节点)

思路:同上一道题,快慢指针问题;/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* getKthFromEnd(ListNode* head, int k) {.

2020-09-28 09:08:02 17

原创 Leetcode每日一题:面试题02.02.kth-node-from-end-of-list-lcci(返回倒数第k个节点)

思路:典型得快慢指针问题,快指针与慢指针中间隔着k-2个节点,那么同时++快慢指针,当快指针指向链表结尾节点时,慢指针指向倒数第k个节点;struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};int kthToLast(ListNode *head, int k){ ListNode *left = head, *right = head; int count = 1;.

2020-09-28 08:48:22 19

原创 Leetcode每日一题:1248.count-number-of-nice-subarrays(统计[优美子数组])

思路:这个题用数学方法还是挺容易想通,左右指针l,r分别指向符合count==k的子数组的两个奇数端点,统计l左边的偶数(包括l)和r右边的偶数(包括r),那么res+=二者的乘积;然后将l++,r++,对下一个符合条件的子数组进行同样的操作,大致思想就是这样;int numberOfSubarrays(vector<int> &nums, int k){ int len = nums.size(); int l = 0, r = 1; int count = 0, cou.

2020-09-27 19:00:47 11

原创 Leetcode每日一题:345.reverse-vowels-of-a-string(反转字符串中的元音字母)

思路:这道题有很多种办法解决,比如用一个vector存字符串中元音字母的索引,然后反转,或者用一个字符串res存原字符串中的元音字母(倒着存,从len-1开始遍历啊),然后遍历原字符串,把原来位置的元音字母用res的代替;这些起码都要遍历字符串一次以上,而双指针则还不需要完整的遍历一次;class Solution {public: static bool check(char c) { if (c != 'a' && c != 'e' &&.

2020-09-26 09:44:07 12

原创 Algorithm Set:floyd判环法

目录1.1 适用情况1.2 复杂度1.3 判断是否存在环1.4 找到环的入口1.5 代码实现1.1 适用情况该算法用于解决一个数组/链表中是否存在环的情况!1.2 复杂度时间复杂度:O(n)空间复杂度:O(1)1.3 判断是否存在环核心思想:类似于龟兔赛跑的原理,使用一个快指针和一个慢指针,快指针一次走两步,慢指针一次走一步,若数组/链表中存在环,那么快慢指针一定会在某一时刻指向同一个元素;fast指针走过的路程 Sfast=m+n1*k+cslow指针走过的路程 Sslow=m+n2*

2020-09-25 14:06:44 15

原创 Leetcode每日一题:287.find-the-duplicate-number(寻找重复数)

思路:一开始并没有什么头绪,直接排序加遍历以O(nlgn)的复杂度水过去了,后来看评论才知道有Floyd判圈算法这么秒的方法,简称龟兔赛跑;具体算法讲解可参考文章:算法-floyd判环(圈)算法,讲得很棒,便于理解;// 先排序再查找 O(nlgn)// static bool cmp(int a, int b)// {// return a < b;// }// int findDuplicate(vector<int> &nums)// {// i.

2020-09-25 13:11:38 14

原创 csapp:浮点数的阶码为什么要用移码表示而不是补码?

日常生活中我们对小数进行加减法时,为了方便,通常先把它们的指数化成一致,再比较前面的数值部分;比如1e-3与1e-1,我们化为1e-3和100e-3,这样就能很明显的得到结果 99e-3了,同样,在计算机中亦是如此;设想以单精度的浮点数为例,阶码有8位,能表示-128~127之间的数字;而我们在对其阶码进行比较时,如果不偏置,那么0010xx和1000xx在计算机眼中就会认为后者较大,而其实后者是负数;所以这样的话,计算机得先把它们化成原码,再对其进行比较,比较繁琐;而当浮点数的阶码采用移码的形式时(

2020-09-24 16:04:29 195

原创 Leetcode每日一题:904.fruit-into-baskets(水果成篮)

思路:这道题的本质就是在一个数组中,找到这么一个子数组,使得这个子数组只有两个不同的数值,并且子数组的长度达到最大;用暴力的解法肯定会超时,这里沿用了KMP的字符串匹配方法;语文能力有限,无法将整个过程很好地描述出来,自己动手按照代码跑一边即可,时间复杂度为O(n);int totalFruit(vector<int> &tree){ int len = tree.size(); int l = 0, r = 0; int pre = tree[0]; while (

2020-09-24 13:51:14 15

原创 Leetcode每日一题:剑指 Offer 04.(二维数组中的查找)

思路:有序+查找元素,第一想到的就是二分法,所以我对每行采用二分法,每行的复杂度为O(m),那么总的复杂度就是O(nlogm);看题解从右上角开始,这个数比目标值大,就往左移一列,比目标值小,就往下移一列,正式利用了整个二维数组从左到右从上到下的递增性;第二种方法还是比较容易实现的,这里就先写第一种方法,回顾以下二分法;bool binary_search(vector<int> &a, int target){ int len = a.size(); int l = .

2020-09-23 18:40:53 21

原创 Leetcode每日一题:86.partition-list(分割列表)

思路:把一个链表分成两个链表,小于x的为一个,大于等于x的为一个,分割完后将两链表进行连接;只是在链表的创建,以及最后首结点的返回需要多加判定条件,要注意一下;struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};ListNode *partition(ListNode *head, int x){ if (head == NULL) { return NULL; .

2020-09-23 14:33:12 18

原创 Leetcode每日一题:80.remove-duplicates-from-sorted-array-ii(删除排序数组中的重复项Ⅱ)

思路:参照评论中的天秀解法,官方题解比较绕,不如这个好;数组删除元素一定要考虑到覆盖法,nums[i++]=n;class Solution {public:int removeDuplicates(vector<int> &nums){ int len = nums.size(); if (len <= 2) return len; int i = 0; for (auto n : nums) { if (i < 2 || nums[i - .

2020-09-22 21:52:42 11

原创 pycharm 运行后,如何查看变量值以及继续输入语句并运行?(非Debug , debug太慢)

在pycharm中找到Edit Configurations并点击:在下面位置处打上勾并保存这样就能在控制台输入语句并运行,也可以查看变量

2020-09-19 10:53:19 129

原创 Leetcode每日一题:16.3sum-closest(最接近的三数之和)

突然觉得这么顺序刷题下去也不是办法,于是决定从今天开始按标签刷题,先从双指针开始吧;思路:其实有点类似那个题:在一个无序数组中找到最接近target的两个数的和,都要先对数组排序,这题与那题不同的是,这里得固定数组中得一个值,然后在剩下的值里面利用双指针找最接近的;具体步骤可以参考题解的这一个,里面有ppt动画演示;C++实现:static bool cmp(int a, int b){ return a < b;}int threeSumClosest(vector<in.

2020-09-16 19:26:44 14

原创 Leetcode每日一题:203.remove-linked-list-elements(移除链表元素)

思路:先利用一个while 将head指向第一个不为val的结点,随后对head->next进行判断,若值为val,则用一个循环跳过之间所有连续的值为val的结点,然后继续对head->next进行判断;/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL).

2020-09-13 22:09:40 10

原创 Leetcode每日一题:198.house-robber(打家劫舍)

思路:明显的动态规划,用money[i]存放打劫至第i家时得到的最多的金额,那么money[i]=max(money[i-2]+nums[i] ,money[i-1]) 因为不能打劫邻居或者说money[i]代表打劫至第i家时的最佳方案(即最高金额);class Solution {public:int rob(vector<int> &nums) { int len = nums.size(); if (len == 0) .

2020-09-06 22:15:18 28

原创 Leetcode中学到的SQL函数汇总

1、DATADIFF函数DATADIFF用于计算两者的日期差DATEDIFF('2007-12-31','2007-12-30'); # 1DATEDIFF('2010-12-30','2010-12-31'); # -1使用查看本道题 上升的温度

2020-09-06 16:33:30 22

原创 Leetcode每日一题:197.rising-temperature(上升的温度)

思路:这里主要用到一个日期比较函数DATEDIFF(计算两者的日期差);DATEDIFF('2007-12-31','2007-12-30'); # 1DATEDIFF('2010-12-30','2010-12-31'); # -1所以查询的条件有两个:1、与之前的日期相差为 1;2、比之前的温度高;SELECT b.IdFROM Weather as a,Weather as bWHERE a.Temperature < b.Temperature and DATED.

2020-09-06 16:10:16 34

原创 matlab基本使用指南

目录一、MATLAB介绍与使用1.1 matlab功能1.2 文件1.3 全局变量1.4 程序调试二、数据操作2.1 变量和语句2.2 数据类型2.2.1 数值型数据2.2.2 字符串2.2.3 结构体2.2.4 单元三、矩阵3.1 矩阵建立3.1.1 普通矩阵的建立3.1.2 特殊矩阵的建立3.1.3 冒号表达式建立向量3.1.4 linspace建立向量3.2 矩阵操作3.2.1 索引矩阵3.2.2 重排矩阵3.2.3 矩阵的转置3.2.4 矩阵的拆分3.2.5 删除矩阵3.2.6 矩阵压缩3.3 矩阵

2020-09-06 15:33:34 130

原创 matlab中未定义与 ‘cell‘ 类型的输入参数相对应的运算符 ‘+‘ 的解决方案

在函数文件中写入以下内容function re=fun(a,b,varargin)if nargin == 2 re=a+b;elseif nargin==3 c=varargin(1); re = a + b + c;else error('wrong');end在命令行运行时出现以下错误:>> fun(1,2,3)varargin = 1×1 cell 数组 {[3]}未定义与 'cell' 类型的输入参数相对应的运算

2020-09-05 14:38:55 3624

CMU CSAPP课件

CMU CSAPP课件

2020-09-26

devC++出现error: ld returned 1 exit status错误

发表于 2019-11-11 最后回复 2019-11-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除