自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 786. 第 K 个最小的素数分数

题目 786. 第 K 个最小的素数分数解题思路首先看数据量,嗯,只有1000个,暴力可行。再看题目描述,找第k小元素,妥妥优先队列。具体做法:使用优先队列维护一个大小为k的大顶堆,当队列大小<k时,往里压入元素;当队列大小>=k时,比较当前元素和堆顶元素的大小,如果堆顶元素值>当前元素值,则抛弃堆顶元素,并把当前元素压入队列,否则不改变当前队列。c++代码如下:class Solution {public: struct node{ double valu

2021-11-29 21:09:34 469

原创 LeetCode 335. 路径交叉

题目 335. 路径交叉 思路卷来卷去,要想不相交,一共只能有三种情况:1.要么一条路走到底一直往外卷,即从第三步开始,每一步都大于前两步的长度,即distance[i]>distance[i-2],这样卷到地老天荒都不会相交;2.要么换一种卷法,一直往里卷(即内卷hhh),即从第三步开始,每一步都小于前两步的长度,即distance[i]<distance[i-2];3.卷到一半突然换一种卷法之外卷转内卷(注:内卷不能突然转外卷,这样一定会相交的)。假如转换点为j,那么对于任意i&l

2021-10-29 10:28:46 100

原创 LeetCode 638. 大礼包

题目 638. 大礼包 解题思路看题第一眼,想到了贪心,细品,想到了动态规划,再细品,还是回溯吧。。。菜鸡的自我救赎,能暴力就暴力hhhhh。 1. 难点在于每个礼包可以选无数次,用动态规划不太好做 2.对于这种可以选多次的最优化问题,回溯最好想,而且数据量也不大,不会超时 回溯优化:剪枝。ans记录当前的最小花费,一旦某条支路上的money超过了ans,这条支路可以毫不犹豫的舍弃。c++代码如下:class Solution {public: int ans=0;//记录用的钱

2021-10-25 11:08:29 181

原创 LeetCode 453. 最小操作次数使数组元素相等

题目 453. 最小操作次数使数组元素相等 解题思路乍一看是不是还挺复杂的,但是你细品后发现,其实就是找最小值和各个元素之间的差,然后求和。原理:每次n-1个数同时加一,可以等价于每次有一个数减一,因为只能做减法,所以数组最后的数只能是最小值。这样的话每个元素减去最小值并求和就是答案。c++代码如下:class Solution {public: int minMoves(vector<int>& nums) { int ans=0;

2021-10-20 09:59:06 57

原创 LeetCode 面试题 02.05. 链表求和

题目 面试题 02.05. 链表求和解题思路 由于两个加数在链表中是反向存储的,所以处理起来比较简单,模拟一下加法的过程,依次将链表中的数字相加。需要注意的点在于仅为的处理,单独设置一个整型用于存储当前的进位即可。c++代码如下:class Solution {//反向存放时的解法:模拟public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { if(!l1&&!l2) return NULL;

2021-10-13 11:14:47 55

原创 LeetCode 2028. 找出缺失的观测数据

题目 2028. 找出缺失的观测数据解题思路乍一看题目很长看起来很复杂的亚子,其实就是纸老虎,简单的模拟题。大致题意为:已知数组的总和sum、大小n和数字范围[1-6],求数组的某一种组合。思路如下:1. 求该数组的平均值mean_n,若平均值超过数字范围,则返回空数组;2. 数组中每个数初始为mean_n,此时还剩下sum%n的值未分配;3. 剩下的值挨个分配,不足6的值直接加到6,直到剩余值分配完为止。c++代码如下:class Solution {//没啥技巧 类似贪心 优先都分6

2021-10-10 15:27:32 52

原创 LeetCode 面试题 02.04. 分割链表

题目:面试题 02.04. 分割链表初步思路暴力法:1. 先遍历一遍链表,统计小于x的数的个数cnt;2. 链表的前cnt位存储小于x的数,定义俩指针,small指针负责将前cnt位的数,big指针负责后面的数。3. 若small指针遇到大于等于x的数,big指针遇到小于x的数,则交换这两个数。c++代码如下:class Solution {public: ListNode* partition(ListNode* head, int x) {//统计小于x的数的个数cnt

2021-10-06 15:14:44 49

原创 LeetCode 223 矩形面积

题目 223.矩形面积链接为:223.矩形面积 简单思路 本意为求出两个矩形的公共面积,覆盖面积=两个矩形的面积-公共面积。 C++代码class Solution {public: int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) { int width_a=ax2-ax1; int height_a=ay2-ay1; .

2021-09-30 09:24:06 90

原创 LeetCode 面试题 01.08. 零矩阵

问题:面试题 01.08. 零矩阵普通思路 开辟额外两个哈希数组空间存储含有元素0的横坐标和纵坐标。时间复杂度O(m*n),空间复杂度O(n)。c++代码如下:class Solution {public: void setZeroes(vector<vector<int>>& matrix) { int n=matrix.size(); int m=matrix[0].size(); map<int,in

2021-09-29 21:54:29 59

原创 LeetCode 48 旋转数组

原题:48.旋转数组自己的骚操作思路:旋转前的第i列数据(逆序)在旋转后就会变成第i列数据(顺序)+位运算。int可以表示的范围为-2147483648~2147483647,而本题的数据范围是[-1000,1000],所以我们可以用int的低10位存储原本的数,10-20位存储旋转后的数。主要麻烦的点在于负数的处理:如果旋转前是负数,则第22位为1;如果旋转后是负数,则第23位为1。C++代码如下:public: int getlowint10(int num) {

2021-09-28 20:40:16 48

原创 ConCare: Personalized Clinical Feature Embedding via Capturing the Healthcare Context

论文阅读——《ConCare: Personalized Clinical Feature Embedding via Capturing the Healthcare Context》【这是2020.12投给所里一篇论文速递,搬到CSDN上做个纪念嘿嘿】本文要给大家分享的是北京大学Liantao Ma等人在AAAI2020发表的一篇关于利用患者的EMR数据预测患者入院死亡风险的论文。从电子病历(Electronic Medical Records, EMR)数据中预测患者的临床结果一直是医疗信息学中一

2021-03-23 19:58:34 933

空空如也

空空如也

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

TA关注的人

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