
算法
mikasoi
这个作者很懒,什么都没留下…
展开
-
通配符匹配实现方法
给定一个字符串(s) 和一个字符模式(p) ,实现一个支持'?'和'*'的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。s可能为空,且只包含从a-z的小写字母。 p可能为空,且只包含从a-z的小写字母,以及字符?和*。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/wildcard-matchingclass Solution {public: boo...原创 2020-07-01 23:30:17 · 1531 阅读 · 0 评论 -
合并两个有序链表
示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4方法一:递归法struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};ListNode* mergeTwo...原创 2020-03-29 11:51:24 · 107 阅读 · 0 评论 -
检测括号是否匹配
给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。算法:初始化栈 S。 一次处理表达式的每个括号。 如果遇到开括号,我们只需将其推到栈上即可。这意味着我们将稍后处理它。 如果我们遇到一个闭括号,那么我们检查栈顶的...原创 2020-03-27 22:46:33 · 1361 阅读 · 0 评论 -
查找字符串数组中的最长公共前缀
string longestCommonPrefix(vector<string>& strs){ if(strs.size() == 0) return ""; if(strs.size() == 1) return strs[0]; int len = strs.size(), min_val = INT_MAX;...原创 2020-03-25 23:00:22 · 1200 阅读 · 0 评论 -
32 位的有符号整数反转
123 -- 321-123 -- -321int reverse(int x) { if(x/10 == 0) return x; //平凡情况:若x∈[-9,9],则直接返回其本身 int y = 0; while(x) { if(y > INT_MAX/10 || y < INT_MIN/10) //...原创 2020-03-23 22:45:05 · 596 阅读 · 0 评论 -
判断一个正整数是不是完全平方数
我自己的解法,利用二分法:bool isPerfectSquare(int num){ if(num == 1) return true; int start = 2; int end = num; int mid; while(start <= end) { mid = start + (end -...原创 2020-03-22 21:51:03 · 2712 阅读 · 2 评论 -
二分法查找
int search(vector<int>& nums, int target){ if(nums.size() == 0) return -1; int left = 0; int right = nums.size() - 1; int mid; while(left <= right) { ...原创 2020-03-22 20:37:09 · 149 阅读 · 0 评论 -
使用位运算进行加法运算
int getSum(int a, int b){ if(a == 0) return b; if(b == 0) return a; int lower; //低位 int carrier; //进位 while(true) { lower = a ^ b; //计算低位,即无进位的加法的结果...原创 2020-03-22 17:06:59 · 871 阅读 · 1 评论 -
空间复杂度
所谓一个程序的空间复杂度是指改程序运行所需内存的大小。空间复杂度的组成程序所需要的空间主要由以下部分组成:指令空间:指编译之后的程序指令所需要的存储空间。 数据空间:指所有常量和变量值所需要的存储空间。它由两部分组成:一是常量和简单变量所需要的存储空间,二是动态数组和动态实例等动态对象所需要的空间。 环境栈空间:环境栈用来保存暂停的函数和方法在恢复运行时所需要的信息。1.指令空间...原创 2019-02-23 22:24:22 · 288 阅读 · 0 评论 -
固高数控工作台的刀补插补程序开发(逐点比较法,数字积分法)
这个刀补插补程序设计是我之前自己的毕业设计,主要是基于固高数控工作台,进行四象限及跨象限的刀补插补(逐点比较法和数字积分法)的程序设计,利用MFC进行刀补插补的效果模拟。最后的效果还是非常好的,随着给定的脉冲当量越小,刀补插补的误差也越小。// 毕业设计Dlg.cpp : implementation file//#include "stdafx.h"#include "...原创 2018-06-28 11:39:24 · 5044 阅读 · 2 评论 -
已知圆弧上两点坐标和半径求圆心坐标的算法(C++)
#include<iostream>#include<math.h>using namespace std;void YuanXin(double x1,double y1,double x2,double y2,double R,double &x,double &y){ double c1 = (x2*x2 - x1*x1 + y2*y2 -...原创 2018-03-17 10:57:33 · 12536 阅读 · 5 评论