自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 C++ Primer 第5章 语句

如果在某处一个带有初值的变量位于作用域之外,在另一处该变量位于作用域之内,则从前一处跳转到后一处的行为是非法行为。case true:// 错误:控制流绕过一个隐式初始化的变量// 错误:控制流绕过一个显式初始化的变量int jval;// 正确:因为jval没有初始化break;// 正确:给jval赋一个值// ...int main()case true:int i = 10;// 报错// 解决方式// (1)加大括号限制i的使用范围// (2)不初始化i,只声明。

2023-09-23 15:31:30 208

原创 C++ Primer 第4章 表达式

表达式由一个或多个运算对象组成,对表达式求值将得到一个结果。字面值和变量是最简单的表达式,其结果就是字面值和变量的值。把一个运算符和一个或多个运算对象组合起来可以生成较复杂的表达式。

2023-09-16 20:01:51 211

原创 C++ Primer 第3章 字符串、向量和数组

如果使用等号(=)初始化一个变量,实际上执行的是拷贝初始化,编译器把等号右侧的初始值拷贝到新创建的对象中去。如果不使用等号,则执行的是直接初始化。拷贝初始化:创建临时对象,复制构造函数。直接初始化效率更高// 拷贝初始化// 直接初始化// 直接初始化// 拷贝初始化,需要显式地创建一个临时对象用于拷贝// 默认初始化,svec不含任何元素// 初始化状态为空// 把ivec的元素拷贝给ivec2// 把ivec的元素拷贝给ivec3// 错误迭代器也提供了对对象的间接访问。

2023-09-03 12:10:40 276

原创 C++ Primer 第2章 变量和基本类型

变量定义的基本形式:类型说明符+一个或多个变量名组成的列表(变量名以逗号分隔),最后以分号结束。// sum、value和units_sold都是int,sum和units_sold初值为0对象是指一块能存储数据并具有某种类型的内存空间。为了允许把程序拆分成多个逻辑部分来编写,C++语言支持分离式编译机制,该机制允许将程序分割为若干个文件,每个文件可被独立编译。为了支持分离式编译,C++语言将声明和定义区分开来。声明使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明。

2023-08-26 23:46:59 276

原创 第10章 对象和类

其定义位于类声明中的函数都将自动成为内联函数,类声明常将短小的成员函数作为内联函数。确保内联定义对多文件程序中的所有文件都可用的最简单的方法是:将内联定义放在定义类的头文件中。使用类对象的程序都可以直接访问公有部分,但只能通过公有成员函数(或友元函数)来访问对象的私有成员。(1)定义成员函数时,使用作用域解析运算符(::)来标识函数所属的类,类方法的完整名称中包括类名。通常,C++程序员将接口(类定义)放在头文件中,并将实现(类方法的代码)放在源代码文件中。(2)类方法可以访问类的private组件。

2023-06-05 21:14:34 420

原创 C++ Primer Plus——第6章 分支语句和逻辑运算符

&运算符也是顺序点,因此将首先判定左侧,并且在右侧被判定之前产生所有的副作用。如果左侧为false,则整个逻辑表达式必定为false,在这种情况下,C++将不会再对右侧进行判定。如果原来表达式中的任何一个或全部都为true,则得到的表达式的值为true;也就是说,先修改左侧的值,再对右侧的值进行判定(C++11的说法是,运算符左边的子表达式先于右边的子表达式)逻辑AND运算符(&&),也是将两个表达式组合成一个表达式。仅当原来的两个表达式都为true时,得到的表达式的值才为true。

2023-05-13 12:04:25 462

原创 Python编程 从入门到实践——第11章 测试代码

要为函数编写测试用例,可先导入模块unittest和要测试的函数,再创建一个继承unittest.TestCase的类,并编写一系列方法对函数行为的不同方面进行测试。接下来的一行指出Python运行了一个测试,消耗的时间不到0.001秒。最后的OK表明该测试用例中的所有单元测试都通过了。运行测试用例时,每完成一个单元测试,Python都打印一个字符:测试通过时打印一个句点,测试引发错误时打印一个E,而测试导致断言失败时则打印一个F。全覆盖的测试用例包含一整套单元测试,覆盖了各种可能的函数使用方式。

2023-03-21 20:29:24 361

原创 Python编程 从入门到实践——第10章 文件和异常

使用关键字with时,open()返回的文件对象只在with代码块内可用。如果要在with代码块外访问文件的内容,可在with代码块内将文件的各行存储在一个列表中,并在with代码块外使用该列表。以附加模式打开文件时,Python不会在返回文件对象前清空文件的内容,而是将写入文件的行添加到文件末尾。如果指定的文件不存在,Python将为你创建一个空文件。要让Python打开不与程序文件位于同一个目录中的文件,需要提供文件路径,让Python到系统的指定位置去查找。

2023-03-20 20:07:51 502

原创 C++ Primer Plus——第5章 循环和关系表达式

C++编程学习笔记

2023-03-16 21:47:54 172

原创 Python编程 从入门到实践——第9章 类

Python编程学习笔记

2023-03-16 00:33:34 306

原创 Python编程 从入门到实践——第8章 函数

函数是带名字的代码块,用于完成具体的工作。# greeter.py # 使用关键字def告诉Python,要进行函数定义,向Python指出了函数名,还可能在圆括号内指出函数为完成任务需要什么样的信息,定义以冒号结尾 def greet_user() : # 文档字符串注释,描述了函数是做什么的,文档字符串用三引号括起,Python使用它们来生成有关程序中函数的文档 “”“显示简单的问候语”“” print("Hello!

2023-03-14 20:58:56 293

原创 C++ Primer Plus——第4章 复合类型

C++学习笔记

2023-03-10 17:35:01 1581 2

原创 Python编程 从入门到实践——第7章 用户输入和while循环

Python编程 学习笔记

2023-03-08 20:03:43 113

原创 Python编程 从入门到实践——第6章 字典

Python编程 学习笔记

2023-03-07 20:50:10 148

原创 Python编程 从入门到实践——第5章 if语句

Python编程 学习笔记

2023-03-06 19:55:39 158

原创 C++ Primer Plus——第3章 处理数据

C++编程 学习笔记

2023-03-03 22:04:53 312

原创 Python编程 从入门到实践——第4章 操作列表

python编程 学习笔记

2023-03-03 20:53:31 139

原创 Python编程 从入门到实践——第3章 列表简介

Python编程 学习笔记

2023-03-01 08:40:58 60

原创 Python编程 从入门到实践——第2章 变量和简单数据类型

python编程 学习笔记

2023-02-28 21:02:18 134

原创 Python编程 从入门到实践——第1章 起步

Python编程 学习笔记

2023-02-27 21:18:30 481

原创 C++ Primer Plus 第2章 开始学习C++

C++ Primer Plus学习笔记

2023-02-10 21:23:14 360

原创 C++ Primer Plus 第1章 预备知识

C++ Primer Plus学习笔记

2023-01-30 20:52:03 156

原创 牛客网——华为机试题库(94-108)

T102. 字符统计#include<iostream>#include<string>#include<vector>#include<unordered_map>#include<algorithm>using namespace std;bool cmp(pair<char,int> a, pair<char,int> b){ if(a.second!=b.second) {

2020-08-21 14:02:02 1081

原创 牛客——华为机试

T15. 求int型数据在内存中存储时1的个数#include <iostream>using namespace std;int main(){ int n; cin >> n; int num = 0; for(int i = 0; i <= 32; i++) { if(n & (1 << i)) num++; } cout <&l

2020-08-03 12:03:12 451

原创 刷题总结——算法思想

LeetCode——双指针T167. 两数之和 II - 输入有序数组class Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { int left = 0; int right = numbers.size()-1; while(left < right){ int num = numbe

2020-08-03 11:29:48 314

原创 刷题总结——数据结构相关

LeetCode—链表T160. 相交链表我们让两条链表分别从各自的开头开始往后遍历,当其中一条遍历到末尾时,我们跳到另一个条链表的开头继续遍历。两个指针最终会相等,而且只有两种情况,一种情况是在交点处相遇,另一种情况是在各自的末尾的空节点处相等。为什么一定会相等呢,因为两个指针走过的路程相同,是两个链表的长度之和,所以一定会相等。/** * Definition for singly-linked list. * struct ListNode { * int val; *

2020-07-29 11:45:53 265

原创 牛客网——华为机试题库(31-40)

31、单词倒排#include <iostream>#include <vector>using namespace std;int main(){ string str; while(getline(cin, str)) { vector<string> word; string temp = ""; for(int i = 0; i < str.size(); i ++)

2020-07-11 20:09:16 658

原创 牛客网——华为机试题库(21-30)

21、简单密码#include <iostream>#include <string.h>using namespace std;int main(){ string str; while(cin >> str) { //进行加密 //小写字母变成九宫格数字 // 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 w

2020-07-08 14:16:31 434

原创 牛客网——华为机试题库(11-20)

11、数字颠倒#include <iostream>using namespace std;int main(){ int n; cin >> n; string str; while(n != 0) { char c = n % 10 + '0'; n /= 10; str += c; } cout << str << endl;

2020-07-07 09:12:38 710

原创 牛客网——华为机试题库(1-10)

1、字符串最后一个单词的长度#include <iostream>#include <string.h>using namespace std;int main(){ char str[5001]; //输入字符串 //cin >> str;//错的,遇到空格不读了 //cin不接受空格,TAB等键的输入,遇到这些键,字符串会终止,而gets()则接受连续的输入,包括空格,TAB gets(str); int l

2020-07-06 11:48:25 1828

原创 LeetCode—搜索

LeetCode—搜索BFS1、计算在网格中从原点到特定点的最短路径长度T1091. Shortest Path in Binary Matrix(Medium)2、组成整数的最小平方数数量T279. Perfect Squares (Medium)class Solution {public: int numSquares(int n) { vector<int> result(n+1, 0x7FFFFFFF); // 每个数的最优解都存在result

2020-06-22 16:56:51 187

原创 LeetCode—数学

LeetCode—数学素数分解整除最大公约数最小公倍数1、生成素数序列T204. Count Primes (Easy)class Solution {public: int countPrimes(int n) { int count = 0; //初始默认所有数为质数 vector<bool> signs(n, true); for (int i = 2; i < n; i++) { if (signs[i

2020-06-22 12:02:04 265

原创 LeetCode—分治

LeetCode—分治1、给表达式加括号T241. Different Ways to Add Parentheses (Medium)class Solution {public: vector<int> diffWaysToCompute(string input) { vector<int> res; for (int i = 0; i < input.size(); ++i) { if (inpu

2020-06-22 11:21:05 131

原创 LeetCode—动态规划

LeetCode—动态规划斐波那契数列1、爬楼梯T70. Climbing Stairs (Easy)class Solution {public: int climbStairs(int n) { if (n <= 1) return 1; vector<int> dp(n); dp[0] = 1; dp[1] = 2; for (int i = 2; i < n; ++i) {

2020-06-22 11:03:19 362

原创 LeetCode——二分查找

LeetCode——二分查找1、求开方T69. Sqrt(x) (Easy)

2020-06-20 12:09:21 120

原创 LeetCode—贪心思想

LeetCode—贪心思想保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。1、分配饼干T455. Assign Cookies (Easy)class Solution {public: int findContentChildren(vector<int>& g, vector<int>& s) { int res=0; int p=0; sort(g.begin(), g.end())

2020-06-20 11:30:44 145

原创 LeetCode—树—Tire

LeetCode—树—TireTrie,又称前缀树或字典树,用于判断字符串是否存在或者是否具有某种字符串前缀。1、实现一个 TrieT208. Implement Trie (Prefix Tree) (Medium)class TrieNode {public: TrieNode *child[26]; bool isWord; TrieNode(): isWord(false) { for (auto &a : child) a = nullp

2020-06-19 15:29:52 223

原创 LeetCode—树—BST

LeetCode—树—BST二叉查找树(BST):根节点大于等于左子树所有节点,小于等于右子树所有节点。二叉查找树中序遍历有序。1、修剪二叉查找树T669. Trim a Binary Search Tree (Easy)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNo

2020-06-19 15:23:09 103

原创 LeetCode—树—前中后序遍历

LeetCode—树—前中后序遍历层次遍历使用 BFS 实现,利用的就是 BFS 一层一层遍历的特性;而前序、中序、后序遍历利用了 DFS 实现。前序、中序、后序遍只是在对节点访问的顺序有一点不同,其它都相同。① 前序void dfs(TreeNode root) { visit(root); dfs(root.left); dfs(root.right);}② 中序void dfs(TreeNode root) { dfs(root.left); v

2020-06-19 11:36:31 141

原创 LeetCode—树—层次遍历

LeetCode—树—层次遍历使用 BFS 进行层次遍历。不需要使用两个队列来分别存储当前层的节点和下一层的节点,因为在开始遍历一层的节点时,当前队列中的节点数就是当前层的节点数,只要控制遍历这么多节点数,就能保证这次遍历的都是当前层的节点。1、一棵树每层节点的平均数T637. Average of Levels in Binary Tree (Easy)/** * Definition for a binary tree node. * struct TreeNode { * in

2020-06-19 11:15:48 194

空空如也

空空如也

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

TA关注的人

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