leetcode解题思路分析(六十四)542 - 551 题
01矩阵给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。采用动态规划得解class Solution {public: vector<vector<int>> updateMatrix(vector<vector<int>>& matrix) { int m = matrix.size(), n = matrix[0].size(); // 初始化动.
leetcode解题思路分析(六十五)552 - 558 题
学生出勤记录2给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量。 答案可能非常大,你只需返回结果mod 109 + 7的值。和1相反,这里需要输出所有可能性。由于A只能有一次,所以先考虑L和P然后加入A即可。考虑L和P,可以采用动态规划求解。dp[i][j][k],0<=i<=n-1,j=0/1,k=0/1/2表示长为i的、里面不包含/包含‘A‘的、以k个‘L‘结尾的、可奖励的出勤数量。dp[i]只与dp[i-1]有关,因此去掉维度i即可class Soluti.
leetcode解题思路分析(六十六)559 - 565 题
N叉树的最大深度给定一个 N 叉树,找到其最大深度。和二叉树并无区别,层次遍历即可,深度优先亦可/*// Definition for a Node.class Node {public: int val; vector<Node*> children; Node() {} Node(int _val) { val = _val; } Node(int _val, vector<Node*> _ch.
leetcode解题思路分析(六十七)566 - 572 题
重塑矩阵如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。没啥好说的,直接输出转换即可class Solution {public: vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) { int m = nums.size(); int n = nums[0]..
1.3 数组及其运算
%%数组及其运算 2020.8.26 马玉华a = [1,2,3;4,5,6;7,8,9]%冒号运算:[x1:公差:x2]生成一维数组b = [10:2:50]%linspace(x1,x2,n) 生成x1到x2间的n个数的一维数组linspace(1,8,8)%size() 求矩阵大小size(b)%取出矩阵中的值a(2,3) %第2行第3列的值a(2,[1,2,3]) %第2行第1,2,3列的值a(2,:) %整行:整个第2行的值
2.1.1 分支语句if、switch, 循环语句for、while
%%分支语句if、switch, 循环语句for、while, 其他pause、break、return、error 2020.8.26 马玉华%if分支结构%if 条件% 执行语句%elseif 条件% 执行语句%else% 执行语句%endx = input('请输入x的值:') %会自动识别double和charif x<=10; y = cos(x)elseif x == 10 y = sqrt(x)else y = si
2.1.2 M函数文件
%%函数文件基本结构 2020.8.26 %function [返回值] = 函数名(输入变量)% 函数体语句function [c,d] = calculate(a,b) c = cos(a) d = sqrt(b)%当代码写完后保存,自动生成一个和函数名相同名字的函数文件 %调用:在命令行输入函数名就可以调用。示例:% [value1,value2] = calculate(10,20) %m脚本文件中调用:方法同上,但是需要函数文件和脚本文
2.1.3 函数重载nargin与nargout
函数文件:%%函数重载nargin与nargout (number argument input 输入变量数目,number argument output)%函数文件如下:function [sum,mean] = sum_mean(a,b)if nargin == 1 % 当输入变量为1个时,执行 sum = a ; mean = a;elseif nargin == 2 % 当输入变量为2个时,执行 sum = a + b ;
2.1.4 提高计算速度,使用数组(一维、多维)计算,避免for循环一个个计算元素
如何提高运算速度?使用数组进行运算!避免for循环。示例:计算一个分段函数f(x)= x² , x>1; 1 , -1<x<=1;3+2x , x<=-1对比计算时间:①for循环计算、②矩阵进行计算、脚本代码:%%使用数组(一维、多维)计算,提高计算速度,避免for循环一个个计算元素。%计算分段函数(piecewise function)f(x)= x² , x>1% 1 ,
python帮助和文档、希腊字母对照表
方法一:在python命令行输入help(查询的函数)help(range) # 详细方法二:print(range.__doc__) # 一般方法三:print(dir(range)) # 简略方法四:在pycharm中按住CTRL,用鼠标点击要查询的函数。...
python中for循环计算和矩阵计算速度对比、time计时方法
其实for循环花费时间很少!计算一个分段函数f(x)= x² , x>1; 1 , -1<x<=1;3+2x , x<=-1可参考在matlab中:https://blog.csdn.net/qq_43328166/article/details/108270104import timeimport numpy as npimport pandas as pd# 计时方法:# start1 = time.clock()# 函数# end1 = time.clock
numpy1.1: np.where用法、及其相似搜索清洗写法
'''numpy.where\及其相似搜索清洗方法2020.8.29'''# 用法1# np.where(condition,x,y) 满足条件,输出x,不满足输出y# 用法2# np.where(condition) 返回满足条件的元素坐标import numpy as nparr = np.arange(1,10,1).reshape(3,3)print(arr)# 用法1arr1 = np.where((8>=arr)&(arr>
twilio给自己发短信
使用python的twilio给自己发短信1.申请账号、虚拟电话号1.注册地址:https://www.twilio.comsign up, 人机验证,邮箱验证,验证接收短信的电话号码。获得自己的虚拟号码,获得账号2.pip install twilio# -*- coding: utf-8 -*-"""用于发送短信需要pip install twilio给自己发短信需要申请账号2020.8.29"""from twilio.rest import Client# Your Ac
2.1.5句柄函数、匿名函数
% 函数句柄:% fun = @ Mfun 这里的Mfun是函数的M文件表达方式fun0 = @calculatefun0(1,3)% 匿名函数(类似lambda函数):% fun = @(x)表达式fun1 = @(x) x^2 + sin(x+1)fun1(1)calculate函数文件为:function [cos_,sqrt_] = calculate(a,b)cos_ = cos(a)sqrt_ = sqrt(b)end...
3.1本征值和线性方程组
% % 本征值与本征向量a = rand(3) % 产生一个3阶 随机矩阵,(0,1)之间随机分布% eig(a) 方阵a的特征值[eigen_vector,eigenvalue] = eig(a) % 本征向量,本征值。(本征=特征)% % 线性方程组disp(' 求解ax=b。具体为:x+2y=1,3x-2y=4 ') % 唯一解a = [1,2;3,-2];b = [1;4];disp('rank(a),rank([a,b]),求出系数矩阵、增广矩阵的秩,如果秩相等有解,
今日推荐
周排行