ARTS第九周打卡

Algorithm : 做一个 leetcode 的算法题

/*

  两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

*/

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int, int> stTmpMap;
        vector<int> vect;
         
        // 时间复杂度O(n),空间复杂度O(n)
        for(int i = 0; i < (int)nums.size(); i++)
        {
            int iComplement = target - nums[i];
            if(stTmpMap.find(iComplement) != stTmpMap.end())
            {
                vect.push_back(stTmpMap[iComplement]);
                vect.push_back(i);
                // break;  // 如果只有一对符合要求!!!
            }
            stTmpMap[nums[i]] = i;
        }
        
        return vect;
    }
};


Review : 阅读并点评一篇英文技术文章

原文链接:https://dev.mysql.com/doc/refman/8.0/en/data-types.html

MySQL supports a number of SQL data types in several categories: numeric

types, date and time types, string (character and byte) types, spatial types, and

the JSON data type.

MYSAL支持多种数据类型:数字类型、时间和日期类型、字符串(字符和字节)类型、空间类型和JSON数据类型;


This chapter provides an overview(概述) of these data types, a more detailed

description of the properties of the types in each category, and a

summary of the data type storage requirements. The initial overview is

intentionally brief. The more detailed descriptions later in the chapter should be

consulted for additional information about particular data types, such as the

permissible formats in which you can specify values.


Data type descriptions use these conventions:(数据约定

  • For integer types, M indicates the maximum display width. For floating-point and fixed-point types, M is the total number of digits that can be stored (the precision). For string types, M is the maximum length. The maximum permissible value of M depends on the data type.

对于整数类型,M表示最大显示宽度;对于浮点型和定点型,M是可存储的位数(精度);对于字符串类型,M是最大长度,M的最大允许值取决于数据类型。   

  • D applies to floating-point and fixed-point types and indicates the number of digits following

  • the decimal point (the scale). The maximum possible value is 30, but should be no greater than M−2.

  • fsp applies to the TIME, DATETIME, and TIMESTAMP types and represents fractional seconds precision; that is, the number of digits following the decimal point for fractional parts of seconds. The fsp value, if given, must be in the range 0 to 6. A value of 0 signifies that there is no fractional part. If omitted, the default precision is 0. (This differs from the standard SQL default of 6, for compatibility with previous MySQL versions.)

  • Square brackets ([ and ]) indicate optional parts of type definitions.


Tips : 学习一个技术技巧

基于数组和链表实现的内存管理器实现

https://www.cnblogs.com/yzdai/p/11442172.html


Share : 分享一篇有观点和思考的技术文章

Lua学习:https://blog.youkuaiyun.com/qq_35718410/article/details/52767518

转载于:https://www.cnblogs.com/yzdai/p/11442242.html

### ARTS打卡 Java 学习或项目进展 #### 一、Algorithm 算法练习 在算法方面,最近研究了回文验证问题中的双指针方法。通过实现 `validPalindrome` 函数来判断给定字符串是否可以通过删除最多一个字符形成回文串[^2]。 ```cpp class Solution { public: bool validPalindrome(string s) { int i = 0; int j = s.size() - 1; int diffCount = 0; while (i < j) { if (s[i] == s[j]) { ++i; --j; } else { if (diffCount > 0) return false; // 尝试移除左边或右边的一个字符并继续比较剩余部分 string sub1 = s.substr(i + 1, j - i); string sub2 = s.substr(i, j - i); return is_palindrome(sub1) || is_palindrome(sub2); } } return true; // 辅助函数用于检测子串是否为回文 auto is_palindrome = [](const std::string& str){ int l = 0, r = str.length() - 1; while(l<r && str[l]==str[r]){ ++l;--r; } return l>=r; }; } }; ``` 此版本改进了原始逻辑,在遇到不匹配的情况时不再直接修改原字符串而是创建两个新的子串分别测试其合法性,从而提高了代码可读性和效率。 #### Review 技术文章阅读心得 关于数据库操作的学习笔记中提到 MySQL 支持四种不同的事务隔离级别:未提交读(Read Uncommitted),已提交读(Read Committed),可重复读(Repeatable Read),序列化(Serializable)[^1]。每种级别的特性决定了并发环境下数据的一致性程度以及性能表现之间的权衡关系。 另外还探讨了两种常见的锁机制——悲观锁(Pessimistic Locking) 和乐观锁(Optimistic Locking) 的原理及其适用场景: - **悲观锁** 假设冲突不可避免,因此总是先锁定资源再执行更新动作; - **乐观锁** 则认为大多数情况下不会发生竞争,仅当实际发生写入时才检查是否有其他更改影响到目标对象。 这两种策略各有优劣,具体选择取决于应用的具体需求和环境特点。 #### Tip 技巧总结 对于上述提及的内容,建议开发者们理解各自系统的默认配置,并根据业务逻辑调整合适的参数设置;同时也要熟悉如何利用编程语言提供的工具去处理并发控制问题,比如 Java 中可以借助框架如 Spring 提供的支持简化分布式事务管理过程。 #### Share 经验交流 分享过程中发现很多同学对多线程下的共享变量可见性和原子性的概念存在误解。实际上,Java 内存模型规定了 volatile 关键字能保证变量的即时可见性但不具备原子性保障,而 synchronized 或者 ReentrantLock 可以提供更强大的同步功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值