JinFei's Blog

Thinking will not overcome fear but action will.

[LeetCode]16. 3Sum Closest

最接近的目标值

题目描述 Given an array nums of n integers and an integer target, find three integers in nums such that the sum is closest to target. Return the sum of the three integers. You may assume that each i...

[C++基础]用C实现C++特性

函数指针

函数指针 封装 //函数指针 // void (*pf)(int) 名为pf,指向一个返回值为空,形参列表为int的函数指针 #include <stdio.h> typedef struct Astruct { int _a; //成员变量 void(*pf1)(); //成员函数指针 int (*pf2)(); }*Astr; int prin...

[C++基础]实现自己的String

string

class String{ private: char* m_data; public: String(); String(const char* str); String(const String& other); String& operator = (const String& other); bool ...

[C++基础]多线程打印

多线程

#include <thread> #include <iostream> #include <mutex> #include <condition_variable> std::mutex data_mutex; std::condition_variable data_var; bool label = false; void prin...

[C++基础]实现自己的String

string

assert是宏,而不是函数。它的原型定义在头文件 assert.h 中: void assert( int expression ); 宏 assert 经常用于在函数开始处检验传入参数的合法性,可以将其看作是异常处理的一种高级形式。assert 的作用是先计算表达式expression,然后判断: 如果表达式值为假,那么它先向stderr打印错误信息,然后通过调...

[C++基础]实现lower_bound

STL

实现lower_bound lower_bound算法返回第一个大于等于给定值所在的位置。 设置两个指针start和last,其中start指向数组的起始位置,last指向数组末尾位置之后的位置。当start和last指向相同位置时循环结束。mid指向[start,last)区间的中间位置,当中间位置元素值大于等于给定val时,说明第一个大于等于val值在mid位置的左边,更新last...

[C++基础]实现memcpy

内存拷贝

内存拷贝,注意覆盖情况 memcopy void* memcpy(void* dsc, const void* src, int length){ assert(dsc != nullptr && src != nullptr); // 如果为假的话 断言报错 char* d; const char* s; if((char*)src +...

[LeetCode]59. Spiral Matrix II

旋转矩阵打印

题目描述 Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. Example: Input: 3 Output: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7...

[LeetCode]279. Perfect Squares

dp

题目描述 Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, …) which sum to n. Example1: Input: n = 12 Output: 3 Explanation: 12 = ...

[剑指Offer]刷题遇到的问题

刷题遇到的问题

从尾到头打印链表 快慢指针,如果要求的k大于链表长度的话 需要特殊判断一下 字符串的排列 不知道怎么写辅助函数 链表删除重复元素 写的不怎么顺畅 常常报段错误 调整数组顺序使奇数位于偶数前面 不会用log 顺时针打印矩阵 第二个for循环条件 记错了 丑数 不知道怎么初始化等,不会写 字符流中第一个不重复的字符 判断条件 应该 >= 0 初始化为-1,然后每次出现 从0开始...