- 博客(32)
- 收藏
- 关注
原创 在 Linux 上利用 hexo 搭建个人博客
方法参考自 B站up主CodeSheep的视频前期工作安装 gitsudo apt-get install gitgit config --global user.name "Your Name"git config --global user.email "email@example.com"安装 nodejs去 nodejs 官网 https://nodejs.org 看最新的版本号;curl -sL https://deb.nodesource.com/setup_14.x | su
2021-08-07 22:52:39 313
原创 经典排序算法 C++代码实现
排序算法理论十种经典排序算法归并排序快排堆排C++代码实现#include <iostream>#include <vector>#include<algorithm>using namespace std;void swap03(int & a,int & b) { int temp = a; a = b; b = temp;}int main() { vector<int> arr
2021-06-05 18:07:12 215 1
原创 使用仿函数进行排序
函数对象重载函数调用操作符的类,其对象常称为函数对象。函数对象使用重载的()时,行为类似函数调用,也叫仿函数。函数对象(仿函数)本质上是一个类,不是一个函数。返回bool类型的仿函数称为谓词。排序要求:二维数组中对其中的一维数组排序。从大到小排,索引为0的排序优先级最高,索引为1的优先级次之。输入:3,5,2 3,8,1 8,9,3输出:8,9,3 3,8,1 3,5,2#include <iostream>#include <
2021-06-04 21:08:03 1052
原创 第一遍leecode:830. 较大分组的位置
题目我的思路首先自然是暴力直接按照题目逻辑进行解题,遍历整个字符串,寻找符合规则的较大分组。下面是我编写的代码。在最后还要再重复一步检测,不简洁。但自己想不出来了。class Solution {public: vector<vector<int>> largeGroupPositions(string s) { vector<vector<int>> res; char pre_char = s[0];
2021-01-05 10:41:52 122 2
原创 第一遍leecode:349. 两个数组的交集
题目我的思路直接暴力解就完事了。但是在保证答案无重复的过程中,又想到了前几天刚学的新东西,正好也能用一用。class Solution {public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { vector<int> num; unordered_set<int> inter; //se
2020-11-02 22:24:47 115
原创 第一遍leecode:1207. 独一无二的出现次数
题目我的思路我想是建一个桶,然后比较桶中的数,但代码写出来其实后面比较“独一无二”的时候逻辑行不通。之后去看了题解。class Solution {public: bool uniqueOccurrences(vector<int>& arr) { unordered_map<int, int> occur; for (const auto& i : arr) { occur[i]++; /
2020-10-28 22:27:12 118
原创 c++入门编程学习记录9
20.10.19,学习c++的第九天学习内容一个空对象占用一个字节的空间。只有非静态成员变量才属于类的对象上。this指针指向被调用的成员函数所属的对象this指针的用途:当形参和成员变量同名时,可用this指针来区分在类的非静态成员函数中返回对象本身,可使用return *this在成员行为中使用成员属性,默认是“this->menber”。//空指针访问成员函数class Person {public: void ShowClassName() { cout <
2020-10-27 20:27:08 89
原创 第一遍leecode:144. 二叉树的前序遍历
题目我就不会做了知识点二叉树的前序遍历:按照访问根节点——左子树——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候,我们按照同样的方式遍历,直到遍历完整棵树。前序遍历、中序遍历、后序遍历的区别:根节点在什么位置(前中后),就是XX遍历。class Solution {public: void preorder(TreeNode *root, vector<int> &res) { if (root == nullptr) {
2020-10-27 19:28:15 83
原创 第一遍leecode:1365. 有多少小于当前数字的数字
题目我的想法第一又是暴力解。这个题是个很好想的暴力解。class Solution {public: vector<int> smallerNumbersThanCurrent(vector<int>& nums) { int log[101] = {}; int temp; for (int i = 0; i<nums.size(); i++) { log[nums[i]]++;
2020-10-26 20:37:18 126
原创 c++入门编程学习记录8
20.10.12,学习c++的第八天学习内容对象的初始化和清理构造函数和析构函数class Person{public: //构造函数 Person(){ cout << "Person的构造函数调用" << endl; } //析构函数 ~Person(){ cout << "Person的析构函数调用" << endl; }};构造函数的分类与调用class Person {public: //无参(默认)构造
2020-10-19 10:31:20 87
原创 c++入门编程学习记录7
20.10.7,学习c++的第七天学习内容类与对象封装class Circle{//访问权限,公共权限public://属性 int m_r;//行为 double calculateZC(){ return 2 * PI * m_r; }};访问权限有三种:公共权限 public 类内可以访问 类外可以访问保护权限 protected 类内可以访问 类外不可以访问 子类可以访问父类私有权限 private
2020-10-09 22:37:15 116
原创 c++入门编程学习记录6
20.10.6,学习c++的第六天学习内容函数提高函数默认参数:int func(int a, int b = 10, int c = 10)//1. 如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都要有默认值//2. 如果函数声明有默认值,函数实现的时候就不能有默认参数(声明和实现只能有一个默认参数)函数占位参数:void func(int a, int) {}func(10,10);//占位参数必须填补函数重载:...
2020-10-07 11:26:53 94
原创 ubuntu18.04 重启后屏幕分辨率突然变差
问题一次我重启linux后,屏幕的分辨率突然变差,图标变大。原因同学告诉我,linux重启时显卡驱动有几率自己就掉了。重新安装一下显卡驱动就可以了。解决步骤执行 Ctrl+Alt+F2 进入文本控制台执行sudo service lightdm stop关闭图形界面可用sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall卸载已有显卡驱动,或使用其他命令(利用其自有的uninstall)可用sudo ./NVIDIA-Linux-x86_64-4
2020-09-11 18:48:27 2261 2
原创 第一遍leecode:459. 重复的子字符串
题目给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。我的想法首先第一步是考虑暴力解,可以行得通。字符串肯定是从第一个字符开始构成重复的,从第一个字符往后越取越长,只要有一次取的子字符串是重复的,就找到了。(基本与题解的第一种解法一致)下面是我暴力求解的代码。能通过,就是效果还能更好。class Solution: def repeatedSubstringPattern(self, s: str) -> b
2020-08-24 20:53:32 116
原创 c++入门编程学习记录5
20.8.21,学习c++的第五天学习内容内存的分区代码区:存放函数体的二进制代码,由操作系统进行管理的(共享、只读)全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收new 与 delete 的初步用法int* a = new int(10);delete a;//堆区开辟数组int* arr = new int[10];delete[] arr;//释放数组 de
2020-08-21 17:27:28 97
原创 第一遍leecode:647. 回文子串
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。我的想法看到示例,首先我想的是计算示例2的情况有没有公式可以总结出来。总结出来了:n(n+1)/2,但是发现并不能使用在本题中,暴力推举的话觉得有快的方法,不过我想不到了。目前我只看了题解中的第一种方法,很好理解。“枚举每一个可能的回文中心,然后用两个指针分别向左右两边拓展,当两个指针指向的元素相同的时候就拓展,否则停止拓展。”代码class Soluti
2020-08-19 16:48:49 95
原创 ubuntu18.04 安装微信
安装微信在这里我使用了deepin-wine环境。首次运行如下命令将移植仓库添加到系统中。wget -O- https://deepin-wine.i-m.dev/setup.sh | sh然后就可以像对待普通的软件包一样,使用apt-get系列命令进行各种应用安装、更新和卸载清理。安装微信命令:sudo apt-get install deepin.com.wechat如此我们就可以快乐的使用微信了。优化微信图标设置这时打开微信,桌面上总是会有一个包含微信图标的小矩形框(Wine
2020-08-15 10:32:37 1224
原创 ubuntu18.04 安装软件的命令
两种安装方法 (各有用处)sudo apt install XXXXsudo dpkg -i XX.deb报错使用 “dpkg” 时可能出现类似下面的报错dpkg: 依赖关系问题使得 mendeleydesktop 的配置工作不能继续: mendeleydesktop 依赖于 python;然而: 未安装软件包 python。 mendeleydesktop 依赖于 gconf2;然而: 未安装软件包 gconf2。dpkg: 处理软件包 mendeleydesktop (--
2020-08-14 16:12:10 954
原创 ubuntu18.04 + anaconda3环境下 安装 tensorflow
创建虚拟环境“tensorflow”conda create -n tensorflow python=3.6查看虚拟环境是否已创建成功conda info -e激活虚拟环境conda activate tensorflow查看可安装的tensorflow版本conda search tensorflow-gpu安装conda install tensorflow-gpu=1.13.1安装完成后可以进Python测试一下tensorflow是否可用。...
2020-08-13 15:16:42 194
原创 第一遍leecode:122. 买卖股票的最佳时机 II
题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。我的想法我在读题之后就理解错题意了。题意是“可以在同一天买入或卖出”,我理解错了。看来题解后打算使用波峰波谷方法。代码class Solution {public: int maxProfit(vector<int>& prices) {
2020-08-12 13:59:20 103
原创 第一遍leecode:696. 计数二进制子串
题目给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。我的想法就正常的双循环暴力求解,结果是“超时”。题解的方法,可以很好的理解,可是自己想却想出来。代码我的“超时”class Solution {public: int countBinarySubstrings(string s) { int len = s.size(); int nu
2020-08-10 11:53:28 99
原创 第一遍leecode:100. 相同的树
题目给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。我的想法我现阶段就只是做简单题嘛,整体的逻辑先慢慢清晰起来。题目即要求对两个二叉树遍历,每个节点都一样就返回ture。遍历的话,我脑子里有前序遍历,中序遍历,后序遍历,我觉得前序遍历我更熟点,就先写一个前序遍历的函数出来。然后才想的是边界条件的设置(我觉得这不是好习惯)。就是对对应节点是否为空的讨论。if语句,搞。用乘法实现结果的记录。代码/** * Definiti
2020-08-07 12:08:04 103
原创 c++入门编程学习记录4
20.8.5,学习c++的第四天学习内容结构体的知识以及用法练习#include<iostream>#include<string>using namespace std;struct student { string name; int age; int score;};struct teacher { string name; int age; struct student stu;};int main()
2020-08-05 20:07:46 90
原创 第一遍leecode:26. 删除排序数组中的重复项
题目给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。我的思路一开始读题就出现了偏差,看到说明后对题的理解也没理解对。后来看了题解才真明白题面是什么意思。代码class Solution {public: int removeDuplicates(vector<int>& nums) { int p
2020-08-05 12:23:12 106
原创 c++入门编程学习记录3
20.7.31,学习c++的第三天学习内容函数定义、调用、值传递、声明、分文件分文件时: #include"saem.h"指针定义与使用、空指针野指针、const修饰指针、(指针;数组;函数)所有指针类型在32位操作系统下是4个字节练习#include <iostream>using namespace std;int main(){ // 指针定义与使用 int a = 10; int * p; p = &a;
2020-07-31 12:02:53 97
原创 第一遍leecode:面试题 08.03. 魔术索引
题目魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。我的思路既然走索引,先是暴力遍历一波,代码通过。然后就想有什么算法上的思路可用。我的第一印象还是二分法,毕竟这个一个有序数组嘛。根据二分法写代码,写到一半“二分判断条件”的时候突然发现二分法处理不了这个问题,就没有思路了。代码下面是题解的代码class Solu
2020-07-31 11:17:36 164
原创 第一遍leecode:392. 判断子序列
题目给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。后续挑战 :如果有大量输入的 S,称作S1, S2, … , Sk 其中 k >= 10亿,你需要依次检查它们是否为
2020-07-27 18:09:48 147
原创 第一遍leecode:154. 寻找旋转排序数组中的最小值 II
题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。我的思路第一眼:看到这个题能想到的就是暴力解,因为总归就是找最小值嘛,然后代码通过了。第二个:暴力解还是太直白,我开始想,想到了二分法来解这个题,虽然是旋转数组,但旋转前是个递增数组,还是有规律的。我先在自己记忆的基础上写了一个二分法,在进行实现的时候给我报超时,我把这归因于我
2020-07-23 10:23:34 117
原创 第一遍做LeeCode:95. 不同的二叉搜索树 II
题目不同的二叉搜索树 II给定一个整数 n,生成所有由 1 … n 为节点所组成的 二叉搜索树 。涉及的新知识二叉搜索树关键的性质是根节点的值大于左子树所有节点的值,小于右子树所有节点的值,且左子树和右子树也同样为二叉搜索树。关于二叉搜索树的一些操作做法我对这个“树”的操作很陌生,结果还是看题解的做法与思路。首先是对[0,n]进行遍历,取其中的一个值 i 分左右,然后再迭代下去。class Solution {public: vector<TreeNode*
2020-07-21 15:59:53 159
原创 c++入门编程学习记录2
20.7.19,学习c++的第二天学习内容程序流程结构选择结构 的 三目运算符、switch语句循环结构:while、do…while、for、嵌套跳转语句:break、continue、goto数组一维数组的定义冒泡排序二维数组的定义练习#include <iostream>using namespace std;int main(){ int a = 10; int b = 20; // 三目运算符 cout <<
2020-07-21 12:59:25 73
原创 c++入门编程学习记录1
20.7.18,学习c++的第一天学习内容初识注释、变量、常量、关键字、标识符命名规则数据类型常用的各种数据类型以及内存的占用string\bool:1字节;short:2字节;int\long\float:4字节;long long\double:8字节运算符算数运算符赋值运算符比较运算符逻辑运算符:! && ||选择结构的 if 语句单行格式、多行格式、多条件格式练习#include <iostream>using namespace
2020-07-19 09:34:56 105
原创 Assessing Image Quality Issues for Real-World Problems
摘要这篇文章引入了一个新的大规模数据集,该数据集将图像质量问题的评估与两个实际的视觉任务联系在一起:给图像加字幕和视觉问题解答。首先,我们为盲人拍摄的39,181张图像进行识别,以确定每张图像的质量是否足以识别内容,以及从六个选项中观察到的图像质量如何。这些标签是我们做出以下贡献的关键基础:(1)确定图像是否不足以识别内容并因此无法添加字幕;(2)确定图像包含六个质量缺陷中的哪一种;(3)确定视觉问题无法解决是否是因为内容无法识别,或是感兴趣的内容从视场中丢失;(4)通过自动确定图像质量是否不足,从而更有
2020-07-14 14:06:33 883
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人