[RATS]week-5

Algorithm

Question

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Answer

    private int reverse(int x) {
        int intMin = (int) Math.pow(-2, 31);
        int intMax = (int) Math.pow(2, 32) - 1;
        boolean isNegative = x < 0;
        long absX = isNegative ? 0L - x : x;
        String reverseXStr = new StringBuilder(String.valueOf(absX)).reverse().toString();
        long reversXlong = isNegative ? 0L - Long.valueOf(reverseXStr) : Long.valueOf(reverseXStr);

        if (reversXlong < intMin || reversXlong > intMax) return 0;
        return (int) reversXlong;
    }

官方思路

控制上下游标,到顶则++,到底则–

Result

在这里插入图片描述

Review

Spring Cloud - Spring Cloud Netflix

Spring Cloud Netflix provides Netflix OSS integrations for Spring Boot apps through autoconfiguration and binding to the Spring Environment and other Spring programming model idioms. With a few simple annotations you can quickly enable and configure the common patterns inside your application and build large distributed systems with battle-tested Netflix components. The patterns provided include Service Discovery (Eureka), Circuit Breaker (Hystrix), Intelligent Routing (Zuul) and Client Side Load Balancing (Ribbon)…

Spring Cloud Netflix通过自动配置和绑定到Spring环境和其他Spring编程模型习惯用法,为Spring引导应用程序提供了Netflix OSS集成。通过一些简单的注释,您可以快速启用和配置应用程序中的常见模式,并使用经过实战测试的Netflix组件构建大型分布式系统。提供的模式包括服务发现(Eureka)、断路器(Hystrix)、智能路由(Zuul)和客户端负载平衡(Ribbon)。

Features
Spring Cloud Config Server features:
HTTP, resource-based API for external configuration (name-value pairs, or equivalent YAML content)
Encrypt and decrypt property values (symmetric or asymmetric)
Embeddable easily in a Spring Boot application using @EnableConfigServer
Config Client features (for Spring applications):
Bind to the Config Server and initialize Spring Environment with remote property sources
Encrypt and decrypt property values (symmetric or asymmetric)

Features
Spring Cloud Netflix features:
1.Service Discovery: Eureka instances can be registered and clients can discover the instances using Spring-managed beans
2.Service Discovery: an embedded Eureka server can be created with declarative Java configuration
3.Circuit Breaker: Hystrix clients can be built with a simple annotation-driven method decorator
4.Circuit Breaker: embedded Hystrix dashboard with declarative Java configuration
5.Declarative REST Client: Feign creates a dynamic implementation of an interface decorated with JAX-RS or Spring MVC annotations
6.Client Side Load Balancer: Ribbon
7.External Configuration: a bridge from the Spring Environment to Archaius (enables native configuration of Netflix components using Spring Boot conventions)
8.Router and Filter: automatic regsitration of Zuul filters, and a simple convention over configuration approach to reverse proxy creation

**特性
1.服务发现:可以注册Eureka实例,客户端可以使用spring管理的bean发现实例
2.服务发现:可以使用声明性Java配置创建嵌入式Eureka服务器
3.断路器:Hystrix客户端可以用一个简单的注释驱动的方法装饰器来构建
4.断路器:嵌入式Hystrix看板,带有声明式Java配置
5.声明性REST客户机:Feign创建了一个接口的动态实现,该接口用JAX-RS或Spring MVC注释装饰
6.客户端负载均衡器:Ribbon
7.外部配置:从Spring环境到Archaius的桥梁(使用Spring引导约定启用Netflix组件的本地配置)
8.路由器和过滤器:Zuul过滤器的自动重新注册,以及反向创建代理的简单约定配置方法

To run your own server use the spring-cloud-starter-netflix-eureka-server dependency and @EnableEurekaServer.

@SpringBootApplication
@EnableEurekaClient
@RestController
public class Application {

  @RequestMapping("/")
  public String home() {
    return "Hello World";
  }

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }

}

**

Tips - MySQL 索引2-给字符串创建索引

1.直接创建完整索引
优点:简单、速度快
缺点:这样可能比较占用空间。
备注:但要根据实际情况计算比如节省的空间成本是否可接受。
2.创建前缀索引或倒序存储
优点:节省空间
缺点:(1) 存在重复的可能性,会增加查询扫描次数,且不能使用覆盖索引,
(2) 不支持范围搜索;
备注:要考虑索引的区分度的问题。
4.创建 hash 字段索引
优点:查询性能稳定
缺点:有额外的存储和计算消耗
备注:hash计算可能会出现重复,也存在前缀索引的问题,但此问题发生概率较小

以上自极客时间-《MySQL实战45讲》学习笔记

Share - 腾讯常用工具腾讯篇 from infoQ

一、Web 开发基础样式库 WeUI

WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一。包含 button、cell、dialog、 progress、 toast、article、actionsheet、icon 等各式元素。
使用文档:https://github.com/Tencent/weui/wiki
开源地址:https://github.com/Tencent/Weui

二、腾讯 Git 代码管理平台『工蜂』

腾讯工蜂是腾讯研发管理部自主研发的 Git 托管代码平台,服务腾讯内部数万名研发工程师,是腾讯内部使用范围最为广泛的工程效率工具;在满足基本开发协作能力的基础上,工蜂也提供了可定制化的 CodeReview、开源协作和研发度量能力。
使用场景:
• 企业内部研发管理、开发协作;
• 企业内部开源项目管理、协同共享;
• 微信小程序版本开发;
• 高校实验室,教学场景等
官网和文档:
官网: https://code.tencent.com/
文档: https://code.tencent.com/help/productionDoc/project

三、腾讯敏捷协作平台 TAPD

TAPD 平台是腾讯敏捷研发体系十余年的发展成果,为产品研发全生命周期提供解决方案,支持敏捷需求规划、迭代计划跟踪、测试与质量保证、持续构建交付等全过程研发实践。TAPD 于 2017 年对外服务,目前已帮助超过 10 万家企业提升研发效能,实现数字化转型升级。
使用场景:
任务协作——适合不同场景的任务跟进
敏捷研发——一站式敏捷研发全生命周期管理
DevOps——一站式 DevOps 持续交付平台
企业级研发数据度量——助力企业衡量效能、持续改进
官网: https://www.tapd.cn/
文档: https://www.tapd.cn/help#page-wikidoc

四、一站式 DevOps 研发平台:腾讯 CI 平台(蓝盾)

蓝盾(bk-ci)是一个开源的持续集成和持续交付系统,从业务安全出发,贯穿产品研发、测试和运营的全生命周期; 助力业务平滑过渡到敏捷研发模式,打造一站式研发运营体系,持续快速交付高质量的产品。目前服务于腾讯 10000+ 开发人员,现已成为腾讯公司指定的 CI 平台。另外,也是获得行业至今为止唯一一个 4 级认证的 DevOps 标准。蓝盾提供了流水线、代码库、凭证管理、环境管理、研发商店 5 大核心服务,多重组合,满足企业不同场景的需求。
使用场景:
工程编译
静态代码检查
运行测试用例,及时发现 BUG
部署与发布
开源地址:https://github.com/Tencent/bk-ci

五、高性能、多语言的微服务治理框架 Tars

Tars 是腾讯将其内部使用的微服务框架 TAF(Total Application Framework)多年的实践成果总结而成的开源项目,在腾讯内部有上百个产品使用,服务内部数千名 C++、Java、Golang、Node.Js 与 PHP 开发者。其包含一整套开发框架与管理平台,兼顾多语言、易用性、高性能与服务治理,理念是让开发更聚焦业务逻辑,让运营更高效。目前腾讯有 160 多个业务(如 QQ 浏览器、手机 QQ、手机游戏、应用宝、微视、天天快报等)在 10 万台服务器上使用 TARS。2017 年,Tars 在 GitHub 开源,目前 TarsCloud 拥有将近一万 star。2018 年,Tars 项目被捐献给 Linux 开源基金会。

使用场景:

高效支持后台服务的开发、部署、发布、运营、监控等;
提供一站式服务治理,包括服务注册发现、服务配置、负载均衡、过载保护、容灾容错等功能;
提供立体化监控平台,轻松获取流量、耗时、超时、异常、自定义等监控数据和历史曲线。同时可进行消息染色,从而做有针对性的监控。
开源地址:https://github.com/tarsCloud
轻量级服务注册发行容错方案 TSeer

TSeer 是一套服务注册发现容错方案,是对 TARS 名字服务功能的轻量化,对业务侵入性低,并且提供 Web 管理平台。在腾讯内部众多业务中广泛采用,目前日均承载百亿级的请求量。

开源地址:https://github.com/Tencent/tseer/

分布式 NoSQL 存储系统 DCache

DCache 是一个基于 TARS 框架开发的分布式 NoSQL 存储系统,数据采用内存存储,支持连接后端 DB 实现数据持久化。DCache 采用集群模式,具有高扩展、高可用的特点。DCache 在腾讯内部有大量业务使用,日访问总量超万亿次。
开源地址:
https://github.com/tencent/dcache

六、小程序组件化开发框架 WePY

WePY 项目启动于 2017 年 11 月份, 是小程序最早的框架之一,是一款让小程序支持组件化开发的框架,通过预编译的手段让开发者可以选择自己喜欢的开发风格去开发小程序。框架的细节优化,Promise,Async Functions 的引入都是为了能让开发小程序项目变得更加简单,高效。

使用场景:

使用 Vue Observer 实现数据绑定
支持 Vue watch/computed/mixin 等特性
基于原生组件实现组件化开发
支持 TypeScript
开源地址:https://github.com/Tencent/wepy

七、微信跨平台跨业务基础组件 Mars

Mars 是微信官方的终端基础组件, 是一个业务性无关, 平台性无关,使用 C++ 编写的基础组件。目前已接入微信 Android、iOS、Mac、Windows、WP、UWP 等客户端。Mars 是一个结合移动 App 所设计的基于 socket 层的解决方案,在网络调优方面有更好的可控性,Mars 在微信用的应用场景主要是:普通 CGI 请求类似收发消息收发语音,业务 CGI 支付请求等。

开源地址:https://github.com/Tencent/Mars

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值