自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 资源 (1)
  • 收藏
  • 关注

原创 计算机图形学-动画与仿真课程

CS 348C: Computer Graphics: Animation and SimulationStanford University, Fall 2017Description: Core mathematics and methods for computer animation and motion simulation. Traditional animation techniques. Physics-based simulation methods for modeling shap

2021-06-24 16:47:46 307

原创 C++关于函数参数(数组,矩阵)的传递与调用

C++ 从函数返回数组添加链接描述C++ 传递数组给函数添加链接描述

2021-06-22 09:34:07 1364

原创 点与三角形的碰撞检测

算法描述,参考链接:[https://blackpawn.com/texts/pointinpoly/default.html]代码实现,C++:// Is the point within the face?// Adapted from http://www.blackpawn.com/texts/pointinpoly/default.htmlbool is_inside(const Vec2& point, const Face* f) { Vec3 bary = get_

2021-06-02 10:26:53 284

原创 C++学习--面向对象编程-类

class Role{private: int a;//成员变量 //成员函数 void Init() { hh=3; } public: int b;//成员变量 int c;//成员变量 //成员函数 void Initaa(role& r) { r.b-=c; }}int main(){ ...}----------------------------------------------------//将成员函数写在class外面cla

2021-05-05 09:45:45 137

原创 实时碰撞检测-质心坐标、Voronoi域、Minkrski-chapter3

=== Section 3.4: ===============================================================// Compute barycentric coordinates (u, v, w) for // point p with respect to triangle (a, b, c)void Barycentric(Point a, Point b, Point c, Point p, float &u, float &

2021-04-28 20:29:31 235

原创 C++学习-函数

函数可将代码模块化,便于阅读维护,方便分工(架构能力),减少重复。返回类型 函数名称(参数,参数...){ 函数的功能区 return 返回值}函数参数:指针参数举例#include <iostream>int add(int* x, int* y){ (*x)*= 100; (*y)*= 10; return *x + *y;}void printresult(int x){ std::cout << x <&

2021-04-24 09:51:59 94

原创 实时碰撞检测-平面

平面表达点法式struct Plane{ Vector n;//Plane normal.Point x in the plane satisfy Dot(n,x)=d float d;//d=dot(n,p) for a given point p}Plane ComputePlane(Point a, Point b, Point c){ Plane p; p.n = Normalize(Cross(b-a,c-a)); p.d = Dot(p.n,a); return p;

2021-04-17 11:00:48 146

原创 GPU高性能编程CUDA实战-Chpter03_Source Code

Chapter 033.2.1 Hello World#include "../common/book.h"int main( void ) { printf( "Hello, World!\n" ); return 0;}3.2.2 核函数调用#include "../common/book.h"__global__ void kernel( void ) {}int main( void ) { kernel<<<1,1>&gt

2021-04-14 08:43:21 185

原创 C++学习-字符串

C++中的一个类std::string,面向对象编程的思想#include<string>using std::string;int main(){ string str{"..."} //截取字符串 string{"hello",2,3}//开头是0 //声明6个a string str{6,'a'} //字符串相加 ls = "123"; str = ls + "456"; //将任意类型转换为字符串 std::to_string("...")}.

2021-04-13 20:52:01 41

原创 C++学习-指针与结构体

typedef int Mint;表示Mint 即为int类型typedef struct Role{ int HP; int MP;}* PRole;int main(){ Role user; PRole puser = &user; puser->HP = 50; user.HP = 50; puser->MP = 50; user.MP = 50;}

2021-04-10 21:58:50 94

原创 C++学习-字符处理

字符串hello在内存中以0结尾(C语言)初始化char str[0xFF]{0x48,'e','l','l','o',''\0};相当于char str[0xFF]{"Hello"};或char* strA = (char*)"Hello";或const char* strA = "Hello";宽字节字符串wchar_t wstr[0xFF]{L"Hello"};输入输出,举例C语言char str[0x10];scanf("%s",name);printf(

2021-04-10 21:13:12 90

原创 C++学习-智能指针

智能指针申请单个std::unique_ptr<int> intPtr{};申请5个空间std::unique_ptr<int[]> intPtr(new int(5));C++14以后申请5个空间,相当于上述的2std::unique_ptr<int[]> intPtr{std::make_unique<int[]>(5)};赋值为5,初始化std::unique_ptr<int> intPtrA{std:

2021-04-10 20:01:44 102

原创 CUDA并行求和算法

CUDA并行求和算法前提准备:先了解CPU自动分配内存求和过程,再了解CPU手动分配内存(malloc)求和过程,然后,进行利用GPU的CUDA程序编写:#include "cuda_runtime.h"#include "device_launch_parameters.h"#include <stdio.h>#include<stdlib.h>__global__ void arr_add(int *a, int *b, int *c, int num)

2021-04-10 17:01:43 584

原创 CUDA环境配置-win10+VS2019+CUDA11.1

1. 安装Visual Studio 2019官网可以直接下载community版本,直接安装即可注意:要先安装VS20192. 安装CUDACUDA官网下载需要的CUDA版本链接:https://developer.nvidia.com/zh-cn/cuda-toolkitwin+R呼出cmd面板输入nvidia-smi,查看机器适配的CUDA版本点击:立即下载下载文件右键->管理员身份运行选择安装文件夹开始安装进入安装程序后,点击“同意并继续”默认的精简

2021-04-03 16:43:39 6812 2

原创 高性能计算学习资料简单汇总

高性能计算学习资料视频课简单汇总视频课简单汇总新竹清华大学:并行计算与并行编程课程链接:https://www.bilibili.com/video/BV1Yt411W7td?p=15&spm_id_from=pageDriverGPU并行计算与CUDA编程(2017)链接:https://www.bilibili.com/video/BV1z4411a7Ny?p=2&spm_id_from=pageDriverNVIDIA CUDA初级教程视频链接:https:/

2021-03-31 17:11:01 364

原创 ABAQUS子程序技术文档-UEL

ABAQUS子程序技术文档我们将有限元软件(以ABAQUS为例)分割来看,分为:前处理,单元部分,求解器。在这三个模块当中,每个主流商业软件手册中都会注明各个单元的理论采用了哪种理论公式,但是只是提一下用什么方法修正,很多没有介绍具体实现的公式。这也会让许多使用人员感觉在用黑盒子,对于分析问题的本质会造成很大的阻碍。下面我们主要讲解UEL用户子程序的使用方法。UEL用户子程序开发步骤用户子程序主要是用来实现特定的材料本构模型和单元算法的有效接口,便于商用软件和求解器之间的交互迭代。编程语言主要采用F

2020-06-09 22:20:24 4726 1

原创 LCOF剑指offer--面试题47. 礼物的最大价值

在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物提示:0 < grid.length <= 2000 < grid[0].l

2020-06-08 10:29:34 147

原创 LCOF剑指offer--面试题61. 扑克牌中的顺子

从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例 1:输入: [1,2,3,4,5]输出: True示例 2:输入: [0,0,1,2,5]输出: True限制:数组长度为 5数组的数取值为 [0, 13] .来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/bu-ke-pai-zhong-d

2020-06-08 09:43:18 107

原创 LCOF剑指offer--面试题53 - II. 0~n-1中缺失的数字

一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 8限制:1 <= 数组长度 <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof著作权归领扣

2020-06-08 09:00:25 184

原创 LCOF剑指offer--面试题44. 数字序列中某一位的数字

数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。示例 1:输入:n = 3输出:3示例 2:输入:n = 11输出:0限制:0 <= n < 2^31来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zi-xu-lie-zhong-mou-yi-wei-de-

2020-06-07 22:12:11 119

原创 LCOF剑指offer--面试题39. 数组中出现次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof著作权归领扣网络

2020-06-04 09:19:59 95

原创 LCOF剑指offer--面试题58 - I. 翻转单词顺序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world! "输出: "world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a goo

2020-06-03 15:41:16 103

原创 LCOF剑指offer--面试题60. n个骰子的点数

把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。示例 1:输入: 1输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]示例 2:输入: 2输出: [0.02778,0.05556,0.08333,0.11111,0.13889,0.16667,0.13889,0.11111,0.0

2020-06-03 11:30:38 87

原创 LCOF剑指offer--面试题59 - II. 队列的最大值

分析:双端队列辅助解答:class MaxQueue {public: queue<int> que; deque<int> deque; MaxQueue() { } int max_value() { if(que.size()==0) return -1; return deque.front(); } void push_back(int value) {

2020-06-03 10:19:18 128

原创 LCOF剑指offer--面试题57 - II. 和为s的连续正数序列

输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <= 10^5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/h

2020-06-02 11:19:33 102

原创 LCOF剑指offer--面试题57. 和为s的两个数字

输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]限制:1 <= nums.length <= 10^51 <= nums[i] <= 10^6

2020-06-02 10:37:35 101

原创 LCOF剑指offer--面试题46. 把数字翻译成字符串

给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”提示:0 <= num < 2…31来源:力扣(LeetCode)链接:https://leet

2020-06-02 09:59:28 193

原创 LCOF剑指offer--面试题53 - I. 在排序数组中查找数字 I

统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0 <= 数组长度 <= 50000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof著作权归领扣网络所

2020-06-01 15:29:38 92

原创 LCOF剑指offer--面试题52. 两个链表的第一个公共节点

输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1

2020-06-01 09:57:11 87

原创 LCOF剑指offer--面试题38. 字符串的排列

输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1 <= s 的长度 <= 8来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。分

2020-06-01 09:23:57 107

原创 LCOF剑指offer--面试题32 - III. 从上到下打印二叉树 III

请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:```cpp[ [3], [20,9], [15,7]] 提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://

2020-05-31 16:32:48 232

原创 LCOF剑指offer--面试题32 - II. 从上到下打印二叉树 II

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-

2020-05-31 15:44:50 92

原创 LCOF剑指offer--面试题32 - I. 从上到下打印二叉树

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof著作权归领扣网络所有。

2020-05-31 15:24:13 103

原创 LCOF剑指offer--面试题42. 连续子数组的最大和

输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示:1 <= arr.length <= 10^5-100 <= arr[i] <= 100来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro

2020-05-31 11:21:50 89

原创 LCOF剑指offer--面试题45. 把数组排成最小的数

输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: "102"示例 2:输入: [3,30,34,5,9]输出: "3033459"提示:0 < nums.length <= 100说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0通过次数12,405提交次数22,270来源:力扣(LeetCode)链接:https:

2020-05-31 10:48:54 173

原创 LCOF剑指offer--面试题36. 二叉搜索树与双向链表

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。特别地,我们希望可以就地完成转换操作。当转化完成以后,树中节点的左指针需要指向前驱,

2020-05-29 16:35:48 98

原创 LCOF剑指offer--面试题35. 复杂链表的复制

请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:输入:head = [[1,1],[2,1]]输出:[[1,1],[2,1]]示例 3:输入:head =

2020-05-29 15:21:37 66

原创 LCOF剑指offer--面试题34. 二叉树中和为某一值的路径

输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \7 2 5 1返回:[ [5,4,11,2], [5,8,4,5]]提示:节点总数 <= 10000来源:力扣(LeetCode)链接:https:

2020-05-24 17:47:35 103

原创 LCOF剑指offer--面试题33. 二叉搜索树的后序遍历序列

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true提示:数组长度 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/pr

2020-05-15 12:02:35 101

原创 LCOF剑指offer--面试题64. 求1+2+…+n

求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/qiu-12n-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解答:1)数学公式cl

2020-05-15 09:11:56 95

ABAQUS_subroutines_lectures.pdf

ABAQUS子程序开发教程,UEL,UMAT,DLOAD等,养成良好的开发习惯对我们系统的学习会有很大的帮助。该文档比较经典,希望对学习者有用。

2020-06-19

空空如也

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

TA关注的人

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