首页 文章 精选 留言 我的

精选列表

搜索[国密算法],共10002篇文章
优秀的个人博客,低调大师

算法题-Count and Say

题目来自 LeetCode The count-and-say sequence is the sequence of integers with the first five terms as following: 1 11 21 1211 111221 1 is read off as “one 1” or 11. 11 is read off as “two 1s” or 21. 21 is read off as “one 2, then one 1” or 1211. Given an integer n, generate the nth term of the count-and-say sequence. Note: Each term of the sequence of integers will be represented as a string. Example 1: Input: 1 Output: “1” Example 2: Input: 4 Output: “1211” 如果没有看懂题意的话,我简单解释一下: 题目规定: 第一个字符串是 “1” 第二个字符串是 “11”(数前一个字符串中的数字个数,前一个有:一个“1”) 第三个字符串是 “21”(前一个字符串有:两个“1”) 第四个字符串是 “1211”(前一个字符串有:一个“2”和一个“1”) … 按照这个规律,输入 n,输出对应的第 n 个字符串 这道题是一道简单的递归题,我是用 Java 写的,如果你也使用 Java 那么我建议你使用 StringBuilder 做字符串的拼接,这样可以很好的提高性能 如果你对 String 和 StringBuilder 不够了解,请戳这里: String,StringBuffer,StringBuilder 以下是答案源码: class Solution { public String countAndSay(int n) { if (n == 1){ return "1"; } String str = countAndSay(n - 1); StringBuilder result = new StringBuilder(); int count = 0; int numberIndex = 0; int i = 0; while (i < str.length()){ if (str.charAt(numberIndex) == str.charAt(i)){ count++; if (i + 1 == str.length()){ result.append(String.valueOf(count)).append(String.valueOf(str.charAt(numberIndex))); } }else { result.append(String.valueOf(count)).append(String.valueOf(str.charAt(numberIndex))); numberIndex = i; count = 0; continue; } i++; } return result.toString(); } }

优秀的个人博客,低调大师

算法学习--数组

一个数组存放了2n+1个整数,其中有n个数出现了2次,1个数出现了1次,找出出现1次的数是多少? //方法一:借助辅助数组(长度为n+1,元素为一结构体(包含数值和 //个数两个成员))进行计数,但是时间复杂度为O(n*n),空间复杂度为O(n+1) //本来是想把Val定义为结构体的,但由于结构体是值类型,不是引用类型, //添加到List结合中的元素的属性值不能被修改,把List中的一个元素赋给另一个Val,修改Val中的value和num, //List中对应的Val相关的属性值是不会改变的,因为他们是内存中的两个不同单元 //总之:谁叫我C学得不好,用的是C#呢,不然就用C实现了。 public class Val {public int value;//值 public int num;//出现的次数 }public int FindA(int[] A, int n) { List<Val> list = new List<Val>(); Val val ; int j=0;for (int i = 0; i < n ; i++) {while (j < n) {bool isExist = false;for(int k=0;k<list.Count;k++) { if (list[k].value == A[j]) { isExist = true; list[k].num = 2;break; } }if (!isExist) { val = new Val(); val.value = A[j]; val.num = 1; list.Add(val); } j++; } }int result = -1;foreach (Val v in list) {if (v.num == 1) { result = v.value;break; } }return result; }//方法二:借助一个长度为n/2+1的数组B,如果A中的元素不在B中,就存入B中,//如果在B中,存在的那个元素后面所有的元素向前移一个单位,相当于去掉这个在B中存在的元素,//这一进一出的,出现偶数次的都去掉了,只剩下出现奇数次的元素。 public int FindI(int[] A, int n) {int[] B = new int[n / 2 + 1];int k = 0;for (int i = 0; i < n; i++) {bool isExist = false;for (int j = 0; j <= k; j++) {if (A[i] == B[j]) { isExist = true;for (int f = j; f < k - 1; f++) { B[f] = B[f + 1]; } k--;break; } }if (!isExist) { B[k] = A[i]; k++; } }return B[0]; }//方法三:排序。相等的数当然就在一起,单独的那个数就是那个只出现一次的了,哈哈... public int FindS(int[] A, int n) {for (int i = 0; i < n - 1; i++) {for (int j = i + 1; j < n; j++) {if (A[i] > A[j]) {int temp = A[j]; A[j] = A[i]; A[i] = temp; } } }int result = -1;for (int i = 0; i < n; i = i + 2) {if (A[i] != A[i + 1]) { result = A[i];break; } }return result; }//方法四:异或运算(博客园这位帅哥牛) //异或运算 0与任何数异或等于任何数,相等的两个数异或等于0,//也就是两个数对应的二进制位进行异或运算;0^0=0 , 1^0=1 , 0^1=1 , 1^1=0//出现偶数次都完蛋了,就剩下出现奇数次的了 public int FindSpecial(int[] A, int n) {int res = 0;for (int i = 0; i < n; i++) { res = res ^ A[i]; }return res; } 本文转自啊汉博客园博客,原文链接:http://www.cnblogs.com/hlxs/archive/2010/11/16/2087989.html

优秀的个人博客,低调大师

Python机器学习算法入门之简单感知器学习算法

问题背景 考虑一个问题:现在我们有一些过往核发信用卡的资料,包括用户个人信息和审核结果。根据这些资料,我们希望预测能不能给下一个用户发信用卡。用户基本信息如下: 这些基本信息组成了一个向量。不同的信息有不同的权重,设权重向量。我们希望构造一个函数来给用户的信用打分,并且,如果信用分超过了某个阈值,我们就认为这个客户是可靠的,可以给他发信用卡: 能发: 不能: 通过阶跃函数,进一步将这个过程函数化: 所以,当,通过;当,拒绝;当,忽略。 其中: 整理该方程如下: 具体到二维空间 简化上面的问题,假设用户只有两个属性,就可以用二维空间的一个点来表示一个用户。如下所示,蓝圈表示通过,红叉表示拒绝。注意到直线的两边,一边大于0,一边小于0,也就是一边都是蓝圈,一边都是红叉。所以现在的目标就是,找到一条直线,可以将已知的蓝圈和红叉完美区分开。 基础知识回顾 简

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册