自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rh's blog

好饿

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

原创 GAMES101 作业2

请用来检验答案是否正确思路判断点是否在三角形内若P点在ABC构成的三角形内,ABC中的任意一点与P点都在另外两点构成的线段的同一侧。假设AB为边,判断C、P点是否在同一侧,可通过AB与AP的叉积、AB与AC的叉积(叉积计算出垂直于这两个向量的向量),判断结果是否同方向来判断是否在同一侧(可以通过点积结果是否大于0)。计算Bounds遍历三角形的三个点,取出最小和最大的x/y值,...

2021-11-08 00:47:00 256

原创 GAMES101 作业1

请用来检验答案是否正确思路根据Games101第四讲的内容来写即可,核心的部分还是M(p) = M(o) * M(p->o),具体的推动过程课程内讲的很详细,点赞~这里有一点需要注意的是,get_projection_matrix传入的参数是“距离值”,因此是正的,但计算过程中需要考虑方向,而在右手坐标系下我们推导过程默认相机看向方向是-Z,因此这里需要对传入值进行取负操作。Cod...

2021-10-30 12:11:00 293

原创 GAMES101 作业0

请用来检验答案是否正确思路这份作业主要在做两个部分:搭环境原作业pdf介绍使用虚拟机,但个人因为卡顿等原因放弃使用虚拟机,使用vscode remote+wsl的方式来开发,具体的配置过程可以搜索关键字,蛮多教程的实现一个旋转、平移题目大意指在二维中,先逆时针旋转,再平移,并要求在齐次空间下实现。这里主要通过构建三维矩阵(齐次占一维),利用绕Z轴旋转矩阵表示题干中的二维旋转矩...

2021-10-18 23:06:00 137

原创 封装promise以在async/await下处理错误信息

const asyncHandle = (promise) => { if (!promise || !promise.then) { return new Promise((resolve, reject) => { reject(new Error("requires promises as the param")); ...

2020-07-06 16:09:00 395

原创 命令行下启动c#控制台程序exe,提示找不到系统文件

场景:在exeA启动exeB时候,如果在工具目录下用xxx.exe启动,是正常的;但是在别的目录,用绝对路径启动这个工具,会提示找不到exeB。问题:永远相信报错,就是"路径问题"导致系统找不到解决方案:如果是直接用文件名称(相对路径)启动的,需要完善路径信息;获取路径信息需要使用 > System.AppDomain.CurrentDomain.BaseDirectory;...

2020-06-23 11:49:00 1400

原创 Unity Timeline下添加AnimationClip导致角色transform变化问题

选择对应的Animation Track,在Track Offsets项中选择 Apply Scene Offsets即可

2020-05-27 10:51:00 951 1

原创 Windows下利用Chrome调试IOS设备页面

本文介绍如何在 Windows 系统中连接 iOS设备 并对 Web 页面进行真机调试必须前提iOS设备、数据线Node.js 环境Chrome 浏览器环境准备安装Node环境参考Node安装的教程,确保终端输入node时可正常使用安装 scoope 以及相关配置为了安装后续需要用的工具 remotedebug-ios-webkit-adapter打开w...

2020-03-28 13:32:00 3111

原创 设计模式 - 观察者模式 (C++实现)

#include <iostream>#include <list>#include <string>using namespace std;class ISubject;class IObserver;class Subject;class Observer;class ISubject {private: list<IO...

2019-07-23 11:10:00 122

原创 vscode 配置c++记录

c_cpp_properties.json{ "configurations": [ { "name": "MinGW", "includePath": ["${workspaceFolder}/**"], "defines": ["_DEBUG", "UNICODE", "_UNICODE"],...

2019-07-23 11:08:00 245

原创 解决vscode 没有 c++11 的代码提示(如to_string()等)

2019.5.4 更新:参考了stackflow上的一个问题:to_string is not a member of std, says g++ (mingw),发现直接换新版mingw即可…mingw下载地址,建议下载压缩包形式的,比较快。安装包太慢太慢了。之后替换掉旧的mingw,修改下tasks.json等即可~2019.5.3 旧方法:我这里使用的环境:win10,compi...

2019-07-23 11:08:00 1840

原创 C语言实现strcat / strlen / strcmp / strcpy

主要考虑两点:返回值对使用的便利性。边界,null的判断。strcatchar *m_strcat(char *des, const char *src){ assert((des != NULL) && (src != NULL)); char *add = des; while (*des != '\0') ++des; ...

2019-07-23 11:07:00 157

原创 WSL下卸载了zsh / fish后无法启动bash解决方案

最近在鼓捣wsl,感觉自己用还是蛮好用的。听说1903要更新新的cmd,还蛮期待的解决步骤:建议先下载个everything , windows下非常好用的文件查找软件。启动后搜索.bashrc,找到路径后缀为你默认登录账号的对应的.bashrc文件用编辑器打开后,如果要卸载zsh则搜索zsh,如果是Fish同理。找到这一段后注释掉,启动bash,若可以则成功。继续搜索C:\Us...

2019-07-23 11:05:00 354

原创 priority_queue 中存放pair时,自定义排序的写法

struct cmp {template <typename T, typename U> bool operator()(T const &left, U const &right) { // 以 second 比较。输出结果为 Second 较大的在前 Second 相同时,先进入队列的元素在前。 ...

2019-07-23 11:03:00 2137

原创 C语言结构体实现类似C++的构造函数

其主要依靠函数指针来实现,具体看代码吧~#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct string{ char data[128]; int length; void (*set)(struct string *it, int len...

2019-07-23 11:01:00 1073

原创 利用gcc编译链接时出现 ‘undefined reference to `std::ios_base::Init::Init()’ 解决

一般编译链接c++程序最好使用g++,若有如上的报错信息,需要在gcc后加上 -lstdc++eg: gcc test.c -lstdc++gcc和g++都是GNU的一个编译器。g++:后缀.c的程序和.cpp的程序都会当成是c++的源程序来处理。gcc:会把.c的程序处理成c程序。对于.cpp的程序,编译可以用gcc/g++,链接可以用g++或者gcc -lstdc++。...

2019-07-23 10:59:00 533

原创 leetcode 1114. Print in Order (easy)

class Foo{public: mutex mut2; mutex mut3; Foo() { mut2.lock(); mut3.lock(); } void first(function<void()> printFirst) { printFirst(); ...

2019-07-16 22:05:08 330

原创 设计模式 - 观察者模式 (C++实现)

#include <iostream>#include <list>#include <string>using namespace std;class ISubject;class IObserver;class Subject;class Observer;class ISubject {private: list<IObser...

2019-07-16 13:53:52 120

原创 leetcode 312. Burst Balloons (hard)

蛮难的一道题…动态规划class Solution{public: int maxCoins(vector<int> &nums) { // 首尾插入1便于计算 nums.insert(nums.begin(), 1); nums.push_back(1); int size = nums.size(); //dp[i][j]表示戳破(i,j...

2019-07-13 15:53:49 116

原创 leetcode 98. Validate Binary Search Tree (medium)

中序遍历,若满足条件,则遍历应是从小到大的class Solution{public: bool isValidBST(TreeNode *root) { if (!root) return true; stack<TreeNode *> sta; long isOrder = LONG_MIN; while (root != NULL || !sta....

2019-07-11 14:17:37 107

原创 leetcode 322. Coin Change (medium)

解法1:在暴力的基础上利用空间记录已求过的值达到剪枝的目的class Solution{public: int coinChange(vector<int> &coins, int amount) { vector<int> memo(amount + 1, -2); return helper(coins, amount, memo); }...

2019-07-10 13:19:26 173

原创 leetcode 72. Edit Distance (medium)

看了这篇题解才解出来。class Solution{public: int minDistance(string word1, string word2) { int len1 = word1.size(); int len2 = word2.size(); vector<vector<int>> dp(len1+1, vector<int&gt...

2019-07-09 20:20:30 122

原创 leetcode 152. Maximum Product Subarray (medium)

动态规划对每个元素来说,到当前元素为止最大的乘积值只与其之前的累积有关。这里需要注意的地方是正负的问题:若当前元素为负,则累积的值越小,乘积越大;若当前元素为正,则累积的值越大,乘积越大。所以最后值需要考虑三个值:当前元素值、累积最大值、累积最小值。class Solution{public: int maxProduct(vector<int> &nums) ...

2019-07-09 15:31:47 129

原创 leetcode 79. Word Search (medium)

深度搜索 + 回溯class Solution{public: bool exist(vector<vector<char>> &board, string word) { int row = board.size(); int col = row > 0 ? board[0].size() : 0; vector<vector&l...

2019-07-08 19:57:08 100

原创 leetcode 33. Search in Rotated Sorted Array (medium)

时间要求 O(log n)看代码就好class Solution{public: int search(vector<int> &nums, int target) { int left = 0; int right = nums.size() - 1; while (left <= right) { int mid = left + (...

2019-07-08 14:54:01 92

原创 leetcode 221. Maximal Square (medium)

用dp解dp[i][j]表示最大正方形的边长从原始矩阵中的索引(0,0)开始,对于每个元素,若其值为1,则我们将当前元素对应在dp中的值更新为同时记录目前为止发现的最大方块的大小class Solution{public: int maximalSquare(vector<vector<char>> &matrix) { int maxNum ...

2019-07-08 11:48:08 155

原创 leetcode 34. Find First and Last Position of Element in Sorted Array (medium)

搜索时间复杂度要求O(log(n)),又是有序的数组,所以用二分搜索。class Solution{public: vector<int> searchRange(vector<int> &nums, int target) { vector<int> res(2, -1); if (nums.size() == 0) retur...

2019-06-25 11:19:48 165

原创 leetcode 139. Word Break (medium)

DP对每个字母状态进行保存和推演dp[i] = dp[i - len(word)] && targetStr.substr(i - len(word), len(word)) == wordclass Solution{public: bool wordBreak(string s, vector<string> &wordDict) { in...

2019-06-25 11:01:43 111

原创 leetcode 148. Sort List (medium)

链表排序,利用分治法class Solution{public: ListNode *sortList(ListNode *head) { if (!head || !head->next) return head; // 分 ListNode *l1 = head; ListNode *l2 = head->next; while (l2 &amp...

2019-06-23 20:30:44 95

原创 leetcode 56. Merge Intervals (medium)

先排序,再按照规则遍历intervals逐个插入到结果中。以下情况则直接插入:invals[i].second < invals[i+1].first前后两个范围无交叉第一次插入到结果因为排序过,所以左边界一定是无需修改的。以下情况修改右边界:invals[i].second >= invals[i+1].first 前后两个范围有交叉,同时invals[i].seco...

2019-06-23 09:57:35 105

原创 leetcode 236. Lowest Common Ancestor of a Binary Tree (medium)

寻找二叉树节点最小公共祖先递归最小公共祖先节点满足q,p点在该节点,或在该节点的左(右)树中。首先以深度遍历树。然后,最小公共祖先情况有两种:2.1 两个子树中有p,q。2.2 它也可以是本身是p或q之一的节点,并且其中一个子树符合条件。class Solution{public: TreeNode *lowestCommonAncestor(TreeNode *ro...

2019-06-21 13:44:47 83

原创 leetcode 207. Course Schedule (medium) 有向图

题目链接思路:题目可以转换成检测一个有向图是否有环。解法一:深度搜索利用着色法,对每一个节点都遍历,同时有三种遍历状态:0 未被访问,1 正被访问,2 已被访问若在遍历时遇到正被访问的节点,说明有环。class Solution{public: vector<vector<int>> graph; vector<int> color; /...

2019-06-19 14:56:09 123

原创 leetcode 208. Implement Trie (Prefix Tree) (Medium)

题目链接构建前缀树(字典树)这里采用哈希表实现class Trie{public: /** Initialize your data structure here. */ Trie() { } /** Inserts a word into the trie. */ void insert(string word) { Trie *node = this; for...

2019-06-17 23:06:42 112

原创 leetcode 416. Partition Equal Subset Sum (medium)

题目链接解法一:bitset通过bitset存储每(多)种元素相加的情况class Solution{public: bool canPartition(vector<int> &nums) { int sum = 0; bitset<100 * 200 + 1> bits(1); for (auto n : nums) { ...

2019-06-17 11:59:33 109

原创 leetcode 240. Search a 2D Matrix II (medium)

题目链接水题class Solution{public: bool searchMatrix(vector<vector<int>> &matrix, int target) { int m = matrix.size(); if (m == 0) return false; int n = matrix[0].size(); i...

2019-06-17 10:41:51 204

原创 leetcode 114. Flatten Binary Tree to Linked List (medium)

题目链接思路:注意:题目要求in-place,即在原root树结构上修改观察给的例子:当前节点的右子树R不用处理,仅仅等着”被链住“。当前节点的左子树L中的最右节点L_maxR,需要”链住“当前节点的右子树R。当前节点的左子树L转移到当前节点的右子树。将当前节点设为L的根,重复以上class Solution{public: void flatten(TreeNode *...

2019-06-16 11:31:58 66

原创 leetcode 399. Evaluate Division (medium)

题目链接思路:建立图结构,(节点可以用自定义结构体或类,也可以用容器配合pair)被除数/除数作为节点,之间的商作为节点间的权重值。转换成图后,题目可以转换为求两点间的权重值。因为不需要寻求最短路径,所以dfs和bfs都可,这里使用dfs。class Solution{public: unordered_map<string, vector<pair<string...

2019-06-16 10:32:41 160

原创 leetcode 814. Binary Tree Pruning (easy)

链接二叉树减枝这里用递归class Solution{public: TreeNode *pruneTree(TreeNode *root) { if (root == NULL) return root; root->left = pruneTree(root->left); root->right = pruneTree(root->r...

2019-06-12 22:01:02 86

原创 leetcode 739. Daily Temperatures (medium)

题目链接题目大意给定一个数组,对于每个元素a[i],求出下一个比该元素大的元素与该元素的距离。class Solution{public: vector<int> dailyTemperatures(vector<int> &T) { int n = T.size(); vector<int> res(n, 0); stac...

2019-06-12 21:41:44 232

原创 leetcode 665. Non-decreasing Array (easy)

题目链接题目大意:给定一个数组,判断能否在可以修改1次以内任一元素的条件下,使该数组变为非降序数组。思路:遍历数组找到第一个降序的地方。假设当 a[i]<a[i-1] 时, 修改无非两种修改方式:令 a[i]=a[i-1] 或令 a[i-1]=a[i]。将两种修改方式都测试一遍:修改后判断当前数组是否为非降序数组。这里用的c++,非降序数组也就是排序过后的数组,可以用is_...

2019-06-11 20:00:36 167

原创 leetcode 893. Groups of Special-Equivalent Strings (easy)

题目链接题目大意:对某个字符串:交换奇位数,或者交换偶位数上的值以后,与另一个字符串相同,则这两个字符串归类为一组。现给一堆字符串,按以上规则判断有几组。思路:类似统计的首先想到用set这种唯一容器去存储不同组。如何判断是否为一组呢? 简单来看就是该组中的字符串,所有奇(偶)数上的所有字符种类、个数相同。统计种类和个数方法也很多,可以自行替换,这里直接用拼接字符串再排序存储的方法。...

2019-06-11 19:33:44 107

空空如也

空空如也

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

TA关注的人

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