Skip to content

samedhaa/coding-challenge

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coding Challenge:

You can try to solve this challenge to test your environment.

Given an integer array "nums", find the sum of the elements between indices i and j (i ≤ j), inclusive.

Example:
Given nums = [-2, 0, 3, -5, 2, -1]

sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3

Note:
You may assume that the array does not change.
There are many calls to sumRange function.

Codespaces Rust Starter

This project is a generic starter for developers to use in Codespaces that includes basic system tools and extensions.

What's Included

This is a basic environment that should be ready to expand upon to build a day-to-day development envrionment for Rust. It comes with the following software choices:

System Tools

  • curl/curl: the command line tool for transferring data over a metric boatload of protocols.
  • git: the Git SCM tool.
  • gnupg2: a complete and free implementatiuon of the OpenPGP standard.
  • stedolan/jq - a command line JSON parser.
  • sudo - the superuser authority delegation tool.
  • zsh - interactive terminal (alternative to bash).
  • ohmyzsh/ohmyzsh - a delightful community driven framework for managing zsh config.
  • vim - a text editor
  • build essentials - tools for compiling and linking code
  • openssl - tls and ssl toolkit

Rust Tools

Besides Rust and Cargo, the image comes with the following Rust related tooling:

  • rustup: installer and toolchain manager
  • rustfmt: a tool for formatting Rust code according to style guidelines
  • clippy: lints to catch common mistakes and improve your Rust code

VS Code Extensions

  • Rust Analyzer: an alternative rust language server to the RLS.
  • CodeLLDB: native debugger based on LLDB.
  • Crates: helps Rust developers managing dependencies with Cargo.toml.
  • Live Share: collaborative, multi-user remote editing from directly within the editor.

Operating System

Usage

In VS Codespaces

Inital Creation

For usage in VS Codespaces, you're going to want to head over to online.visualstudio.com and sign up for VS Codespaces (that process is outside the scope of these instructions). Once you've got an account and are signed in to online.visualstudio.com, you're going to take the following steps:

  • Ensure you're on the /environments page at online.visualstudio.com/environments
  • In the top right corner, there'll be a "Create environment" button. Click this button, which will open up a panel from the right side of the screen. Fill in the details of this panel:
    • Codespace Name: This will be the visible name of your environment within Codespaces. The value here doesn't particularly matter.
    • Git Repository: This is going to be either the URL you'd git clone the repo from or the GitHub <org OR user>/<repo> shorthand. For this repo, the easier value would be codespaces-examples/base.
    • Instance Type: For this, you're going to choose your plan - in my case, I'm just going to go with the Standard (Linux) plan. For most use cases of this starter, Basic (Linux) should suffice. You can also change your plan at any time, as your workload demands.
    • Suspend idle environment after: This is the period of time you want your environment to automatically suspend after you've stopped actively using it. I generally chose 5 minutes and have not had any problems to date.
    • Dotfiles (optional): These are entirely optional, and are available for advanced users.
      • Dotfiles Repository: Using the git clone URL or the GitHub <org OR user>/<repo> syntax, you can define the repo to pull your dotfiles from. For examples, see jessfraz/dotfiles or fnichol/dotfiles.
      • Dotfiles Install Command: The name of the file or the command to run to install your dotfiles.
      • Dotfiles Target Path: The path where your dotfiles should be installed.
    • Once you've filled out all of those (and resolved any errors in the form validation, if any occurred), you'll be able to click "Create" at the bottom of the panel and your environment will start creating.

Connecting to your Environment

Once you've completed the Creation steps, your environment will be usable from Codespaces until you delete it. You can access it by going to online.visualstudio.com and selecting the vertical elipsis menu to connect to it from the browser or launch it in VS Code / VS Code Insiders.

When inside of the environment you can change envrionments themselves from the command pallete with the Codespaces: Connect.

Note: See the VS Online in the Browser quickstart for more information.

Additionally, if you've installedthe Visual Studio Codespaces extension in VS Code locally, you'll be able to directly connect from VS Code itself.

Note: See the VS Online in VS Code quickstart for more information.

Working

Now that you're set up and connected, you should be able to work within your Codespaces environment.

Contributing

Contributions are welcome. Please refrain from opinionated additions like linters. However, adding package managers and other DX improvements that are additive like yarn are welcome. Contributors must follow the Code of Conduct.

About

Coding Challenge In Rust

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 75.5%
  • Rust 15.9%
  • Dockerfile 8.6%