
算法
利来利往
幽默,诚实,守时,守信,适应能力强。
展开
-
随机函数,洗牌函数 random_shuffle
【代码】随机函数,洗牌函数 random_shuffle。转载 2022-11-18 17:17:09 · 180 阅读 · 0 评论 -
【算法】数字对齐
void CPlay::ScoreTwoPaint(){if(999999ScoreTwo=999999;int PlayTwoScoreSW=ScoreTwo/100000;int PlayTwoScoreW=(ScoreTwo/10000)%10;int PlayTwoScoreQ=(ScoreTwo/1000)%10;int PlayTwoScore原创 2022-07-29 17:39:42 · 181 阅读 · 0 评论 -
【算法】跑得快AI
代码不全,但是函数可以复用原创 2022-07-13 13:27:20 · 2813 阅读 · 12 评论 -
随机非连续lua配置表,要求相近的不重复
local RAND_INDEX = 1--获得机器人配置function Room:getBotPlayerInfo(session, t) local seatId = t:getTableType() local gameinfo = GetConfig("gameinfo",seatId) or {} local siteLevel = gameinfo.siteLevel or 1 RAND_INDEX = RAND_INDEX + 1 local cfg = GetConfig(.原创 2022-05-19 12:54:35 · 142 阅读 · 0 评论 -
有序序列去重
local tmpHands = {23,43,44,65,26,46,67,48,68,29,69,70,12,13,53,73,21,2,22,36}-- 这个是对扑克牌取值,和去重没关系function ddzGetCardValue(cbCardData) if(not cbCardData)then return 0 end cbCardData = cbCardData % 20 if(cbCardData == 1)then return 14 end if(cb..原创 2022-05-14 10:55:58 · 206 阅读 · 0 评论 -
深度优先遍历(DFS)和广度优先遍历(BFS)
深度优先遍历主要思路是从图中一个未访问的顶点 V 开始,沿着一条路一直走到底,然后从这条路尽头的节点回退到上一个节点,再从另一条路开始走到底...,不断递归重复此过程,直到所有的顶点都遍历完成,它的特点是不撞南墙不回头,先走完一条路,再换一条路继续走。广度优先遍历广度优先遍历,指的是从图的一个未遍历的节点出发,先遍历这个节点的相邻节点,再依次遍历每个相邻节点的相邻节点。DFS 一般是解决连通性问题,而 BFS 一般是解决最短路径问题,一般深度优先遍历用的是栈,而广度优先遍历要用队列来实现转载 2022-01-10 16:50:05 · 361 阅读 · 0 评论 -
【算法】算法
算法1.你熟悉那些排序算法2.冒泡排序和快速排序原理和时间复杂度,谁更稳定3.快速排序可以优化吗4.介绍寻路算法,寻路算法失败怎么处理5.除了A星算法还知道其他算法吗6.A星算法的原理加密一致性哈希1、冒泡排序(Bubble Sort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端原创 2021-04-23 17:29:49 · 240 阅读 · 0 评论 -
华为机试算法题
一共三道题,150分钟,第一二题200分,第三题400分,听说150分算过。主要是只告诉你通过率,没告诉你正确答案和你的错误答案做对比,不知道自己哪里漏了。/*第一题1-100围城一个圈,重1开始数,如果等于给定的数就删掉,继续数, 直到剩余的数量小于给定的数。此题100%通过输入3输出58,91输入4输出34,45,97*/#include <iostream>#include <string.h>#include <map>.原创 2020-12-10 02:43:20 · 1185 阅读 · 0 评论 -
intech面试总结
一面:电话面试,总时间40分钟,2个人,第一个人问的一些基础的C++技术,主要是网络和数据库和多线程相关第二个人主要问一些项目架构,和项目管理相关。二面:(全是选择题)第1-4部分是智力题,找数字规律和找图形第5-6部分是性格题第7-10部分是逻辑题,和语文的阅读理解差不多,但是更像公务员的考试风格。一面感觉一般,本人工作中很少去复习基础知识,很多记不清楚,也有很多...原创 2019-01-17 17:28:54 · 1814 阅读 · 4 评论 -
[leetcode]第4题
class Solution { int myMin(int x, int y) { return x < y ? x : y; } int findNumber(vector<int>& nums1, vector<int>& nums2, int findKth) { int lengt...原创 2019-01-14 17:02:18 · 412 阅读 · 1 评论 -
[leetcode]第3题
class Solution {public: int lengthOfLongestSubstring(string s) { vector<int>v(256,-1); int len = s.size(); int ans = 0; int start = -1; for(int i=0;...原创 2019-01-14 16:50:10 · 318 阅读 · 0 评论 -
[leetcode]第1题
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int>twoSum; map<int,int>tmpmap; int nsize = nums.size...原创 2019-01-14 16:34:23 · 139 阅读 · 0 评论 -
[leetcode]第2题
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* a...原创 2019-01-14 16:30:08 · 166 阅读 · 0 评论 -
[手游项目2]-28-强化系统
--概率算法local randlist = {85,60,55,50,50,40,35,25,20,15,12,10,10,5,5} --概率local countlist = {0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0} --统计强化次数local randlist2 = {} --正常概率local randlist3 ...原创 2018-12-01 05:16:13 · 295 阅读 · 0 评论 -
[手游项目2]-27-十进制的位操作
将十进制的各个位数分离出来 https://blog.youkuaiyun.com/baidu_33725271/article/details/69891704在c十十中,求一个十进制数n各个位数的和应怎么编程 https://zhidao.baidu.com/question/1579592418533529300.html ...转载 2018-11-27 19:34:56 · 228 阅读 · 0 评论 -
[手游项目2]-12-min 到max随机n个不同的数
#include <Windows.h>#include <vector>int Rand(int from,int to){ int nDec, nMin; if (from > to) { nDec = from - to + 1; nMin = to; } else { nDec = to - from ...原创 2018-08-30 14:04:16 · 184 阅读 · 0 评论 -
游戏批量合成道具算绑定道具的数量算法
function CheckCompositeCommonBind(sysarg, consumes, nCount) local nMaxCount = 0 local bBind = false for k,v in pairs(consumes)do if(v.id ~= 0)then --有多少绑定材料 local haveCount = Actor.getItemC原创 2016-03-07 16:52:46 · 1326 阅读 · 0 评论 -
求x,y
--[[x, y ∈ [1,9]10x + y = a,a^3 = c,是4位数a^4 = d, 是6位数c、d各数字正好是0~9中一个, 不重复求x,y]]local Aarr = {}for a=11,99 do if(1000<=a*a*a and a*a*a<=9999)then if(100000<=a*a*a*a and a*a*a*a <=999999)the原创 2015-05-14 13:04:05 · 578 阅读 · 0 评论 -
合算法:从m个数中选n个数的所有组合
#include using namespace std;int combine(int a[], int n, int m){ m = m > n ? n : m; int* order = new int[m+1]; for(int i=0; i<=m; i++) order[i] = i-1; int count = 0;转载 2014-08-25 04:32:17 · 4800 阅读 · 0 评论 -
求全排列
#include using namespace std;void myswap(int &a,int &b){ int temp = a; a = b; b = temp;}void fuc(int a[],int n,int len){ if(n==1) { for(int i=0;i<len;++i) { cout<<a[i]<<","; }转载 2014-08-24 15:43:42 · 568 阅读 · 0 评论 -
半质数的个数
质数是大家熟知的概念,我们定义一个半质数的概念:如果一个数恰好是两个质数的乘积(可以相同),则称它为半质数。前几个半质数是 4, 6, 9, 10, 14, 15, 21, 22, 25, 26。我们的问题是,输入两个正整数x<=y,问[x,y]之间有多少个半质数?输入:x,y 输出:[x,y]之间有多少个半质数。 输入数据范围 1#include #include u原创 2014-02-20 20:49:18 · 1124 阅读 · 1 评论 -
在一个数组中找到等于某个数的组合
方法1:#include#include#include#include#include #includeusing namespace std;void getResult(vector a,int result) { sort(a.begin(),a.end()); int nLen = a.size(); for (int i = 0; i转载 2014-02-20 15:19:44 · 3970 阅读 · 0 评论 -
大数相乘(支持浮点数)
// $Id: multi.cpp 7 2006-11-02 06:30:51Z JiangMiao $ // JiangMiao's Blog http://blog.youkuaiyun.com/antter#include #include using namespace std;#define SAFE_DELETE(p) if((p)!=NULL){delete p;p=NULL转载 2014-02-19 18:15:25 · 1186 阅读 · 0 评论 -
A星
http://www.cppblog.com/mythit/archive/2009/04/19/80492.aspx转载 2014-02-13 17:26:48 · 647 阅读 · 0 评论 -
求最低价格
超能饮料 (关键字: chemical)文明盛世旗下的化工产品实验室一直在研究如何配制能够提高工程师生产效率、保持他们头脑清醒的新型兴奋剂。研究已经分离了一系列化合物,当它们和糖水混合在一起就成为了下一代超能饮料的活性成分。这些化合物成分类似:任何一种化合物都可经由某一化学反应,成为其它任意一种化合物。实际进行化学反应的成本很低,但使反应发生的设备和催化剂成本相当高昂。把某一化合物转换原创 2014-02-07 19:43:30 · 1191 阅读 · 1 评论 -
一个大小为N(0<N<1000)的整数数组, 求该数组的子数组(长度大于2)为等差数列的个数?
#include #include #include #include using namespace std;typedef map TempList;int GetNumNum(int N,int M) //N个数中取M个数多少种情况 自己写{ return 1;}int GNumNumNum(int nLen) //N个数种取3,4,5..原创 2013-09-22 16:23:46 · 991 阅读 · 0 评论 -
棋局之谜
一个6X6格子的五子棋盘,要求对某些位置的棋子颜色写死(即不参与随机),其他位置不管随机是黑子还是白子不能产生五子连珠或六子连珠。下面是例子 1 ,2 表示颜色写死的 0表示可以随机的。求出最少写死多少个子可以满足要求,并求出写死最少子满足要求有多少种情况。 [1] = { 0,1,0,0,2,0, 1,2,0,0,2,1, 0,0,1,2,1,0,原创 2013-09-22 10:14:45 · 746 阅读 · 0 评论 -
数组排序
#include #include using namespace std;/*给定一个包含1-n的数列,我们通过交换任意两个元素给数列重新排序。求最少需要多少次交换,能把数组排成按1-n递增的顺序,其中,数组长度不超过100。 例如: 原数组是3,2,1, 我们只需要交换1和3就行了,交换次数为1,所以输出1。 原数组是2,3,1,我们需要交换2和原创 2013-09-17 14:09:56 · 680 阅读 · 0 评论 -
倒水
有两个容器,容积分别为A升和B升,有无限多的水,现在需要C升水。 我们还有一个足够大的水缸,足够容纳C升水。起初它是空的,我们只能往水缸里倒入水,而不能倒出。 可以进行的操作是: 把一个容器灌满; 把一个容器清空(容器里剩余的水全部倒掉,或者倒入水缸); 用一个容器的水倒入另外一个容器,直到倒出水的容器空或者倒入水的容器满。 问是否能够通过有限次操作,使得水缸最后恰好有C升水。 输入:三个原创 2013-09-16 17:52:22 · 793 阅读 · 0 评论 -
找中间数问题
#include #include #include using namespace std;int getMiddleValue(const int *p,int size){int counter[100] = {0};for(int i = 0;i {++ counter[p[i]];}int tempCounter = 0;for(int i转载 2013-05-09 17:36:47 · 840 阅读 · 0 评论 -
用字符串解决加减乘除解决不够位
1.在计算机中,由于位宽限制,只能进行有限精度的十进制整数加减法,比如在32位宽计算机中,参与运算的操作数和结果必须 在-231~231-1之间。若是需要进行更大规模的十进制整数加法,需要使用特殊的方法实现,比如使用字符串保存操作数和结果,采 纳逐位运算的方式进行。如下:9876543210 + 1234567890 = ?,让字符串 num1="9876543210",字符串 num2=原创 2012-12-08 10:45:40 · 4659 阅读 · 2 评论 -
【转】数据结构:位图法
一、定义 位图法就是bitmap的缩写。所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。在STL中有一个bitset容器,其实就是位图法二、数据结构unsigned int bit[N];在这个数组里面,可以存储 N * sizeof(int)个数据,但是最大的数只能是N * size转载 2012-12-05 10:52:36 · 725 阅读 · 0 评论 -
今天是周几?
#include using namespace std;/*有两个村,张村和李村张村的人星期一三五说谎李村的人星期二四六说谎一人问,今天周几?结果两个村的人都回答“前天是我说谎的日子”问:今天是周几? *///A 表示张村 B表示李村 ,返回0表示说谎,返回1表示说实话int FindA(int nWeek){ if(nWeek ==原创 2012-12-01 12:01:44 · 1052 阅读 · 0 评论 -
金山软件面试题
http://bbs.youkuaiyun.com/topics/390257148转载 2012-11-23 09:49:28 · 1158 阅读 · 1 评论 -
线性表
#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define ERROR 0#define OK 1#define OVERFLOW -2#include #include #include using namespace std;struct sqlist{ int *elem; in转载 2012-11-20 11:37:12 · 512 阅读 · 0 评论 -
递推与递归
递推:构造低阶的规模(如规模为i,一般i=0)的问题,并求出解,推导出问题规模为i+1的问题以及解,依次推到规模为n的问题。(知道第一个,推出下一个,直到达到目的。,关键要找到递推公式) 递归:将问题规模为n的问题,降解成若干个规模为n-1的问题,依次降解,直到问题规模可求,求出低阶规模的解,代入高阶问题中,直至求出规模为n的问题的解。(要知道第一个,需要先知道下一个,直到一个已知的,再转载 2012-11-17 09:58:13 · 608 阅读 · 1 评论 -
用两个栈实现队列和用两个队列实现一个栈
题目:用两个栈实现一个队列。队列的生命如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。template class CQueue{public: CQueue(void); ~CQueue(void); void appendtail(const T& node); T deleteHea转载 2012-11-17 09:37:14 · 529 阅读 · 0 评论 -
strcpy memcpy strcat strcmp memset strlen
1.strcpystrcpy是拷贝字符串,以\0为标志结束strcpy的原型为char *strcpy_(char *strDest, const char *strScr){ assert((strDest != NULL) && (strScr != NULL)); char *address=strDest; while((*strDest++ = * strSc原创 2012-11-14 17:09:17 · 692 阅读 · 0 评论 -
全排列问题
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab、cba。这是一个典型的递归问题,考虑如何将复杂问题分解成简单问题,最后通过递归解决。我们肯定有这样的经验,自己在写abc的全排列的时候,肯定会想首先确定第一个字符,然后考虑后面有什么排列,比如确定第一个字符为a,那么剩下的b和c有两种转载 2012-11-12 14:51:21 · 480 阅读 · 0 评论 -
连续子数组的最大和
题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间负责度为O(n)。看到这个题目,我们首先想到的是求出这个整型数组所有连续子数组的和,长度为n的数组一共有 n(n+2)/2个子数组,因此要求出这些连续子数组的和最快也需要O(n^2)的时间复杂度。但是题目要求的O(n)的时间复杂度,因此上述思路不能解决问题。看到O(n)时间转载 2012-11-12 11:21:25 · 569 阅读 · 0 评论