惯例
这篇先解题分享。
怕来不及打完,这样比较好修改...科科
题目连结:https://leetcode.com/problems/remove-duplicates-from-sorted-array
重点在於,不产生新阵列,由阵列直接删除重复数字,且例子有数字连续特性。
# @param {Integer[]} nums
# @return {Integer}
def remove_duplicates(nums)
end
def remove_duplicates(nums)
#去除阵列中重复的数字,只保留单独一个
#回传新阵列的数值是题目要求的。
end
解题方向也可以用for、while、loop等语法。
def remove_duplicates(nums)
nums.uniq!
nums.size
end
有够黑...
题目连结:https://leetcode.com/problems/remove-element/
直接由阵列,去除阵列指定数值。
# @param {Integer[]} nums
# @param {Integer} val
# @return {Integer}
def remove_element(nums, val)
#删除阵列内指定值
#回传阵列长度(资料数)
end
#重点在於,不能用多一个array去运算,例如
nums - [val]
2.7.3 :063 > x = [1, 2, 4, 5]
=> [1, 2, 4, 5]
2.7.3 :064 > y = [2]
=> [2]
2.7.3 :065 > x-y
=> [1, 4, 5]
这边也先直接黑魔法下去。
def remove_element(nums, val)
nums.delete(val)
return nums.size
end
这两题摆在一起,其实是因为有相同逻辑可以去用,什麽指针式,双指针。
Ruby的优点在於很多语法对於资料(阵列,杂凑),处理得非常完善,这些语法当然也是由许多逻辑经过良好的封装完成的。
有人说新手学Ruby很难,因为太多黑魔法,这点真的无法否认。像我这个菜鸟,学习初期真的很想了解这些黑魔法的运作原理,但CP值真的太低了,学怎麽用比较实在,但是逻辑能懂还是要能懂,在遇到没有黑魔法时,才解得出来。
实体就是一堆资料的集合体,通常招唤一个实体,会看到的是一杂凑。
首先Rails new一个专案,之後我们直接先做一个modle与一个controller
请确定终端机指令介面有到正确的资料夹。
$rails new test1212
test1212是专案名称,专案名称请随意。
但注意专案名称尽量不要取得与未来你会用到的model、controller、table名称相同。
$ rails greate model model_name
我model_name用role,应该会看到类似资料回传.
Running via Spring preloader in process 85403
invoke active_record
create db/migrate/20210811102936_create_roles.rb
create app/models/role.rb
invoke test_unit
create test/models/role_test.rb
create test/fixtures/roles.yml
create部分告知你创建了哪些资料,可以先停下看看资料夹多了哪些档案,test部分请先跳过。
这是用指令方式创建,也可以手动输入。(test很重要,重要到我不会XD)
有model不一定会有资料表(不一定有实体),也有可能一个model会有许多张资料表。
接着我们先执行做出资料库
$ rails db:migrate
== 20210811102936 CreateRoles: migrating ======================================
-- create_table(:roles)
-> 0.0012s
== 20210811102936 CreateRoles: migrated (0.0012s) =============================
这代表着我们开始可以将由Role这个model建立出来的实体有地方放了。
migration这项,及使用rails greate model或rails greate model指令带参数时的注意事项不做分享,请看好书为你自己学Ruby on Rails
但请注意,一般用指令时,g model会顺便建立table,g migration不会顺便建立model。
接下来另一个指令
$ rails c
$ rails c --sandbox
不讲专有名词,就是rails的irb,sanbox指沙盒模式,随你玩,不会真的存档。
进入後
2.7.3 :001 > player = Role.new
(0.9ms) SELECT sqlite_version(*)
TRANSACTION (0.1ms) begin transaction
=> #<Role id: nil, created_at: nil, updated_at: nil>
2.7.3 :002 > player = Role.create
TRANSACTION (0.2ms) SAVEPOINT active_record_1
Role Create (1.2ms) INSERT INTO "roles" ("created_at", "updated_at") VALUES (?, ?) [["created_at", "2021-08-11 13:04:04.122577"], ["updated_at", "2021-08-11 13:04:04.122577"]]
TRANSACTION (0.1ms) RELEASE SAVEPOINT active_record_1
=> #<Role id: 3, created_at: "2021-08-11 13:04:04.122577000 +0000", updated_at: "2021-08...
你的画面可能跟我长得不一样,但请观察new与create这两个指令的差异。
为何书上都有的,我还这样打一遍,因为我初学时,rails c跟irb傻傻分不清楚,还有以为rails後一定也要建立controller与view才可以建立实体。
整理一下Role.create出来的实体
player = {
id: 3,
create_at: "2021-08-11 13:04:04.122577000 +0000",
updated_at: "2021-08-11 13:04:04.122577"
}
实体其实就是一堆资料,电脑传输的是一堆资料。
下篇继续说明:怎麽用人看得懂的方式处理实体。(讲完等於讲完MVC了?)
网路上的好资料:Rails指令集
>>: [Python] 关键字yield和return究竟有什麽不同?
有关於ExcelJS这个套件的教学与说明,请先看我的上一篇文章: [前端/ES6] 实作汇出exce...
假如用人数去施打疫苗图表 人数是概略计算非准确值 算一下总触发 IF 次数 348.5万 * 1 +...
GitHub Repo https://github.com/b2etw/Spring-Kotlin...
大家在玩CMS之前应该都有先在本地端做测试的习惯吧,那应该会有遇到那种像是使用了XAMPP在本地端架...
问题回答 在 Vue 2,我们需要使用 .set() 等 Vue 语法来修改在 data 里的物件或...