首页 文章 精选 留言 我的

精选列表

搜索[匹配算法],共10005篇文章
优秀的个人博客,低调大师

贪心算法

贪心的过程要么是最大要么是最小,堆可以很好的满足这个要求。 问题1:一块金条切成两半,是需要花费和长度数值一样的铜板的。比如 长度为20的 金条,不管切成长度多大的两半,都要花费20个铜 板。一群人想整分整块金 条,怎么分最省铜板? 例如,给定数组{10,20,30},代表一共三个人,整块金条长度为 10+20+30=60. 金条要分成10,20,30三个部分。 如果, 先把长 度60的金条分成10和50,花费60 再把长度50的金条分成20和30, 花费50 一共花费110铜板。 但是如果, 先把长度60的金条分成30和30,花费60 再把长度30 金条分成10和20,花费30 一共花费90铜板。 输入一个数组,返回分割的最小代价。 import java.util.Comparator; import java.util.PriorityQueue; public class ddd { public int lessMoney(int[] array){ PriorityQueue<Integer> minHeap = new PriorityQueue<>(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1 - o2; } }); for(int i = 0; i < array.length; i++) minHeap.add(array[i]); while (minHeap.size() > 1){ int one = minHeap.poll(); int two = minHeap.poll(); minHeap.add(one + two); } return minHeap.poll(); } public static void main(String[] args) { int[] arr = {10, 20, 30, 10}; System.out.println(new ddd().lessMoney(arr)); } } 问题2:输入: 参数1,正数数组costs 参数2,正数数组profits 参数3, 正数k 参数4,正数m costs[i]表示i号项目的花费 profits[i]表示i号项目在扣除花 费之后还能挣到的钱(利润) k表示你不能并行、只能串行的最多 做k个项目 m表示你初始的资金 说明:你每做完一个项目,马上获得的收益,可以支持你去做下 一个 项目。 输出: 你最后获得的最大钱数。 import java.util.Comparator; import java.util.PriorityQueue; public class moreProfile { private class Node{ public int c; public int p; public Node(int c, int p){ this.c = c; this.p = p; } } public int moreProfile(int[] costs, int[] profits, int k, int m){ PriorityQueue<Node> minCost = new PriorityQueue<>(new Comparator<Node>() { @Override public int compare(Node o1, Node o2) { return o1.c - o2.c; } }); PriorityQueue<Node> maxProfits = new PriorityQueue<>(new Comparator<Node>() { @Override public int compare(Node o1, Node o2) { return o2.p - o1.p; } }); Node[] nodes = new Node[costs.length]; for(int i = 0; i < nodes.length; i++) nodes[i] = new Node(costs[i], profits[i]); for(int i = 0; i < nodes.length; i++) minCost.add(nodes[i]); for(int i = 0; i < nodes.length; i++){ while (!minCost.isEmpty() && minCost.peek().c <= m){ maxProfits.add(minCost.poll()); } if(maxProfits.isEmpty()) return m; m += maxProfits.poll().p; } return m; } public static void main(String[] args) { int[] costs = {10, 20, 5, 8, 100}; int[] profits = {5, 9, 1, 2, 30}; int k = 5, m = 30; System.out.println(new moreProfile().moreProfile(costs, profits, k, m)); } } 问题3: 给定一个字符串类型的数组strs,找到一种拼接方式,使得把所 有字 符串拼起来之后形成的字符串具有最低的字典序。 import java.util.Comparator; import java.util.PriorityQueue; public class Str { public String bestStr(String[] str){ PriorityQueue<String> minHeap = new PriorityQueue<>(new Comparator<String>() { @Override public int compare(String o1, String o2) { String one = o1 + o2; String two = o2 + o1; return one.compareTo(two); } }); for(int i = 0; i < str.length; i++) minHeap.add(str[i]); String res = ""; while (!minHeap.isEmpty()) res += minHeap.poll(); return res; } public static void main(String[] args) { String[] str = {"ba", "b" }; System.out.println(new Str().bestStr(str)); } } 问题4:一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目 的宣讲。 给你每一个项目开始的时间和结束的时间(给你一个数 组,里面 是一个个具体的项目),你来安排宣讲的日程,要求会 议室进行 的宣讲的场次最多。返回这个最多的宣讲场次。 import java.util.Comparator; import java.util.PriorityQueue; public class BestArrange { private class Program{ public int start; public int end; public Program(int start, int end){ this.start = start; this.end = end; } } public int BestArrange(Program[] pro, int start){ PriorityQueue<Program> minHeap = new PriorityQueue<>(new Comparator<Program>() { @Override public int compare(Program o1, Program o2) { return o1.end - o2.end; } }); for(int i = 0; i < pro.length; i++){ minHeap.add(pro[i]); } int res = 0; for(int i = 0; i < pro.length; i++){ if(start <= minHeap.peek().end){ res++; start = minHeap.poll().end; } } return res; } }

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

elasticsearch 排序 算法

如何将tfidf映射到[1,3] 区间内 (1)建立映射x→arctanx,此为一一映射,把全体实数R映射到开区间(-π/2,π/2)(2)开区间(-π/2,π/2)到开区间(0,1)只需要一个线性映射就可以,设为f(x)=ax+b,则有f(-π/2)=1且f(π/2)=3,解得a=2/π,b=2综合一下,映射x→2(arctanx)/π+2,即把全体实数映射到(1,3) 所以表达式可以写成 "script_score" : { "script" : "return atan(_score.doubleValue())*2/3.14159+2" } 为了只使用函数值 设置"boost_mode": "replace", 所以整个请求如下 curl -XGET 'http://localhost:9200/alias-product/product/_search?pretty&explain' -d '{ "size" : 1, "query" : { "function_score" : { "query" : { "bool" : { "should" : [ { "match" : { "_all" : { "query" : "关键字", "type" : "boolean", "operator" : "AND", "boost": 10 } } }, { "match" : { "company_name" : { "query" : "关键字", "type" : "boolean", "operator" : "AND", "boost": 10 } } } ], "minimum_should_match" : "1" } }, "functions" : [ { "script_score" : { "script" : "return atan(_score.doubleValue())*2/3.14159+2" } },{ "filter" : { "match" : { "company_name" : { "query" : "关键字", "type" : "boolean", "operator" : "AND" } } }, "weight" : 2 } ], "score_mode" : "sum", "boost_mode": "replace" } }, "aggregations" : { "agg" : { "terms" : { "field" : "member_id", "size" : 0, "order" : { "top_hit" : "desc" } }, "aggregations" : { "top_hit" : { "max" : { "script" : { "inline" : "_score" } } } } } } }' 本文转自whk66668888 51CTO博客,原文链接:http://blog.51cto.com/12597095/1942729

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

Proxy-Go v12.4 发布,优化 DNS 结果选择,自动匹配

Proxy 是 golang 实现的高性能 http、https、websocket、tcp、udp、socks5 代理服务器,支持正向代理、反向代理、透明代理、内网穿透、TCP/UDP 端口映射、SSH 中转、TLS 加密传输、协议转换、DNS 防污染智能代理、前置 CDN/Nginx 反代、代理连接重定向、API 动态调用上级代理、限速限连接数。提供全平台的命令行版本,友好易用的 Windows&Linux&macOS 控制面板,强大的安卓版。 更新内容 1、优化默认域名解析行为。 2、优化当API设置了outgoing,会根据outgoing的ip版本ipv4或ipv6,选择目标域名解析结果中对应版本ipv4或ipv6的IP地址。 更新: v10.7 及以后版本,执行:proxy update,即可完成快速更新到最新版。 特色功能 链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至 N 级代理。 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层 tls 高强度加密,安全无特征。 智能 HTTP 代理,HTTPS 代理,SOCKS5 代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理 (前提是配置了上级代理) 访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理。 域名黑白名单,更加自由的控制网站的访问方式。 跨平台性,无论你是 widows,linux,还是 mac,甚至是树莓派,都可以很好的运行 proxy。 多协议支持,支持 HTTP (S),TCP,UDP,Websocket,SOCKS5 代理。 TCP/UDP 端口转发。 游戏盾,游戏代理,高仿服务器。 内网穿透,P2P 传输,协议支持 TCP 和 UDP,针对 HTTP 的优化穿透。 SSH 中转,HTTP (S),SOCKS5 代理支持 SSH 中转,上级 Linux 服务器不需要任何服务端,本地一个 proxy 即可开心上网。 KCP协议支持,HTTP (S),SOCKS5 代理支持 KCP 协议传输数据,降低延迟,提升浏览体验。 动态选择上级代理,通过外部 API,HTTP (S),SOCKS5,SPS 代理可以实现基于用户或者 IP 的限速,连接数限制,动态获取上级。 灵活的上级分配,HTTP (S),SOCKS5,SPS 代理可以通过配置文件实现基于用户或者 IP 的限速,连接数限制,指定上级。 反向代理,支持直接把域名解析到 proxy 监听的 ip,然后 proxy 就会帮你代理访问需要访问的 HTTP (S) 网站。 透明 HTTP (S) 代理,配合 iptables,在网关直接把出去的 80,443 方向的流量转发到 proxy,就能实现无感知的智能路由器代理。 协议转换,可以把已经存在的 HTTP (S) 或 SOCKS5 或 SS 代理转换为一个端口同时支持 HTTP (S) 和 SOCKS5 和 SS 代理,转换后的 SOCKS5 和 SS 代理如果上级是 SOCKS5 代理,那么支持 UDP 功能,同时支持强大的级联认证功能。 自定义底层加密传输,http (s)\sps\socks 代理在 tcp 之上可以通过 tls 标准加密以及 kcp 协议加密 tcp 数据,除此之外还支持在 tls 和 kcp 之后进行自定义加密,也就是说自定义加密和 tls|kcp 是可以联合使用的,内部采用 AES256 加密,使用的时候只需要自己定义一个密码即可。 底层压缩高效传输,http (s)\sps\socks 代理在 tcp 之上可以通过自定义加密和 tls 标准加密以及 kcp 协议加密 tcp 数据,在加密之后还可以对数据进行压缩,也就是说压缩功能和自定义加密和 tls|kcp 是可以联合使用的。 安全的 DNS 代理,可以通过本地的 proxy 提供的 DNS 代理服务器与上级代理加密通讯实现安全防污染的 DNS 查询。 负载均衡,高可用,HTTP (S)\SOCKS5\SPS 代理支持上级负载均衡和高可用,多个上级重复 - P 参数即可。 指定出口 IP,HTTP (S)\SOCKS5\SPS\TCP 代理支持客户端用入口 IP 连接过来的,就用入口 IP 作为出口 IP 访问目标网站的功能。如果入口 IP 是内网 IP,出口 IP 不会使用入口 IP 支持限速,HTTP (S)\SOCKS5\SPS\TCP 代理支持限速。 支持限连接数,HTTP (S)\SOCKS5\SPS\TCP 代理支持限连接数。 SOCKS5 代理支持级联认证。 证书参数使用 base64 数据,默认情况下 - C,-K 参数是 crt 证书和 key 文件的路径,如果是 base64:// 开头,那么就认为后面的数据是 base64 编码的,会解码后使用。 支持客户端 IP 黑白名单,更加安全的控制客户端对代理服务的访问,如果黑白名单同时设置,那么只有白名单生效。socks/http (s)/sps/tcp/udp/dns/ 内网穿透 bridge / 内网穿透 tbridge,都支持客户端 IP 黑白名单。 端口范围批量监听,HTTP (S)\SOCKS5\SPS\TCP 代理支持指定端口范围监听,避免启动过多进程,提高性能。 下载地址: Gitee Github

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

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等操作系统。

用户登录
用户注册