自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员Link

左手代码,右手生活。日拱一卒,脚踏实地。

  • 博客(28)
  • 收藏
  • 关注

原创 Code28 顺时针打印矩阵

题目剑指Offer 29. 顺时针打印矩阵输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 1000 <= matri

2020-11-27 14:29:55 207

原创 Code27 最长回文子串

题目leetcode5. 最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”代码方法1 动态规划假设 字符串 s 长度为 n,pd[ i ][ j ] 表示下标 [i, j] 范围的元素是否为回文(1表示是,0表示不是),有以下几种情况:pd[ i ][ i ] (0 <= i <

2020-11-25 09:51:39 194

原创 Code26 广度遍历多叉树

思路用 容器 queue 作为辅助,先进先出。代码// C++#include <list>#include <queue>#include <iostream>using namespace std;struct Node { int val; list<Node*> node_list;};void print(Node* root){ if (nullptr == root){ return; }.

2020-11-24 09:40:43 350

翻译 C++11 Mutex的风险(译)

点击查看原文 The Risks of Mutexes。文章主要通过介绍直接调用 mutex 的 lock 和 unlock 容易导致死锁,引出 lock(另外的博文,结尾链接)。The Risks of MutexesMutex的风险Usage of mutexes seems extremely simple. There is a critical section in the code, which can only be accessed by a single thread at .

2020-11-23 14:05:33 329

翻译 C++11 SFINAE概念介绍:类成员的编译时内省(译)

点击查看原文An introduction to C++'s SFINAE concept: compile-time introspection of a class memberC++的SFIEAE概念介绍:类成员的编译时内省Trivia:As a C++ enthusiast, I usually follow the annual C++ conference cppconf or at least try to keep myself up-to-date with the majo.

2020-11-21 18:51:14 387 1

翻译 C++11 SFINAE and enable_if (译)

点击查看 原文。There’s an interesting issue one has to consider when mixing function overloading with templates in C++. The problem with templates is that they are usually overly inclusive, and when mixed with overloading, the result may be surprising:在C++.

2020-11-21 10:57:15 229

原创 C++11 decay

一 定义头文件 <type_traits>template< class T >struct decay; (since C++11)二 作用退化类型的修饰。为类型T应用从左值到右值(lvalue-to-rvalue)、数组到指针(array-to-pointer)和函数到指针(function-to-pointer)的隐式转换。转换将移除类型T的cv限定符(const和volatile),并定义结果类型decay::type。这种转换很类似于函数参数按值传递时发

2020-11-20 16:28:51 4374

原创 Code25 寻找两个正序数组的中位数

题目代码C思路有 int target = (nums1Size + nums2Size) / 2 + 1;若总数为奇数,则中位数为第 target 个 数,例如:共 3 个数,则 第 2 个 是中位数;若总数为偶数,则中位数为 (第 target - 1 个 数 + 第 target 个 数)/ 2,例如:共 4 个数,则 中位数为 第 2 个 + 第 3 个 数的和 / 2;也就是我们只需要总排序的第 target 个数,总数为偶数的话还需要第 target - 1 个数。

2020-11-19 18:33:03 187

原创 Code24 无重复字符的最长子串

题目leetcode3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。代码思路类似动态规划的思路假设以下标

2020-11-18 20:53:54 129

原创 Code23 两数相加

题目leetcode2. 两数相加给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807该题与 Code1 将两个链表表示的整数

2020-11-18 17:20:26 248

原创 Code22 合并两个有序数组

题目leetcode88. 合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:[1,2,2,3

2020-11-17 19:37:11 122

原创 Code21 爬楼梯

题目leetcode70. 爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶代码递归(简单,但效率低)int climbStairs_1(in

2020-11-17 18:52:11 238

原创 Code20 相同的树

题目leetcode100. 相同的树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。代码C代码// C // 思路:深度优先,递归struct TreeNode { int val; struct TreeNode* left; struct TreeNode* right;};#include <cstddef>bool isSameTree(struct TreeNode* p, st

2020-11-17 18:46:47 221

原创 Code19 删除排序链表中的重复元素

题目leetcode83. 删除排序链表中的重复元素给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3代码// C // 思路:快慢指针#include <malloc.h>struct ListNode { int val; struct ListNode *next;};

2020-11-16 20:03:53 116

原创 Code18 二进制求和

题目leetcode67. 二进制求和给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”提示:每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。1 <= a.length, b.length <= 10^4字符串如果不是 “0” ,就都不含前导零。代码跟 Code17

2020-11-13 18:44:52 570

原创 Code17 加一

题目leetcode66. 加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]

2020-11-13 18:30:06 255

原创 Code16 x的平方根

题目leetcode69. x 的平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。代码// c 方法1 顺序遍历int mySqrt(int x) { if (0 == x) { return 0; } int

2020-11-13 18:16:51 84

原创 Code15 最后一个单词的长度

题目leetcode58. 最后一个单词的长度给定一个仅包含大小写字母和空格 ’ ’ 的字符串s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: “Hello World”输出: 5代码思路从结尾反向遍历,从第一个非空格开始计数,直到再遇见空格或者遍历结束。代码// C#include <string.h

2020-11-12 20:26:23 91

原创 Code14 最大子序和

题目leetcode53. 最大子序和给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。代码思路动态规划假设以下标 i 结尾的最大子序和为 max_ending_here[i], 则有如下关系:max_ending_here[i] = max(max_ending_here[i-1] + nums[i],

2020-11-12 19:38:57 192

原创 Code13 外观数列

题目leetcode38. 外观数列给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1 12 113 214 12115 111221第一项是数字 1描述前一项,这个数是 1 即

2020-11-09 12:15:06 160

原创 Code12 搜索插入位置

题目leetcode35. 搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例3:输入: [1,3,5,6], 7输出: 4示例4:输入: [1,3,5,6], 0输出: 0代码// Cint searchInsert(int* nums, int numsS

2020-11-06 20:05:17 163

原创 Code11 实现 strStr()

题目leetcode28. 实现 strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1说明:当 needle 是空字符串时,

2020-11-06 19:42:45 90

原创 获取磁盘容量

一 场景windows下获取磁盘容量和可用空间,可通过 GetDiskFreeSpace 系列 API:GetDiskFreeSpaceAGetDiskFreeSpaceWGetDiskFreeSpaceExAGetDiskFreeSpaceExW后缀解释A = ASCII非宽字节版本W = 宽字节版本Ex = 函数扩展版本二 GetDiskFreeSpace语法BOOL GetDiskFreeSpaceA( LPCSTR lpRootPathName,

2020-11-06 17:02:55 728

原创 Qt connectSlotsByName与信号槽

目录一 场景二 setupUi三 connectSlotsByName四 源码五 注意一 场景在 Qt connect与信号槽 一文中提到,信号槽主要通过 connect 进行连接,并且有好几种不同的写法。新建一个Demo Widgets 程序。在 Qt 设计师界面中,拖入一个 QPushButton 控件,在其上右键 - 转到槽 - 选择信号 clicked(),会自动生成一个槽函数 on_pushButton_clicked()。发现点击按钮会触发该槽,但在代码中并没有找到 connect 的存

2020-11-05 20:27:38 1179

原创 Code10 移除元素

题目leetcode27. 移除元素给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,

2020-11-05 09:55:02 276

原创 Code9 删除排序数组中的重复项

题目leetcode26. 删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函

2020-11-03 14:12:56 49

原创 Code8 合并两个有序链表

题目leetcode21. 合并两个有序链表将两个升序链表合并为一个新的 升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4代码struct ListNode { int val; ListNode* next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : va

2020-11-03 09:36:33 74

原创 Code7 有效的括号

题目leetcode20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: t

2020-11-02 19:15:53 136

空空如也

空空如也

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

TA关注的人

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